ctypes的傳入參數是類型嚴格的,若是聲明的傳入參數(經過argtypes聲明)是一個
POINTER(c_int)
類型,活着是結構體內部定義的類型,那麼這種狀況下,只有類型嚴格一致才能夠設置。python
from ctypes import * charptr = POINTER(c_char) arg_char = charptr((c_char*5)(*b'abac')) arg_char[0] = b's' cdll.msvcrt.printf(b"%s\n",arg_char)
經過函數
cast(src,to_type)
;和C語言同樣。數組
from ctypes import * charptr = POINTER(c_char) arg_char = charptr((c_char*5)(*b'\x0a\x0b\x0c\x0d')) cdll.msvcrt.printf(b"%#x\n",cast(arg_char,POINTER(c_int)).contents)