我有以下代碼ctypes.cast總是拋出引發ArgumentError
from ctypes import cast, c_char_p, c_int, byref, POINTER
# ...
mj, mn, pt = c_int(), c_int(), c_int()
// FreeType
__dll__.FT_Library_Version(__handler__, byref(mj), byref(mn), byref(pt))
print("{0}.{1}.{2}".format(cast(mj, POINTER(c_char_p).value, cast(mn, POINTER(c_char_p).value, cast(pt, POINTER(c_char_p)).value)
扔一個ArgumentError
從cast
功能ctypes.ArgumentError: argument 1: <class 'TypeError'>: wrong type
的問題是,爲什麼?這裏是我的代碼中的錯誤我是用ctypes的一個newbiew但我覺得像cast(c_int, POINTER(c_char_p))
打印c_int
例子沒有得到c_int(2)
投的第一個參數應該是一個對象,而不是一個類型。 –
抱歉是在寫問題時出錯。我會修復 – rkmax