我通過ctypes的一個dll集成到蟒,該DLL需要設置的回調函數。但該dll回調函數聲明如下蟒ctypes的,回調函數擴充類型是C++參考
void setCallBack(void(*)(Data &a))
Data is C struct, declare as below
typedef struct {
int index,
....
}Data
我並不清楚如何通過ctypes的設置它,我嘗試如下,但返回「WindowsError:[錯誤-1073741795] Windows錯誤0xC000001D」的錯誤,你能幫助舉例說明如何設置回調。
mydll = cdll.LoadLibrary("XXX.dll")
callback_type = CFUNCTYPE(None, POINTER(Data))
callback = callback_type(Data)
mydll.setCallBack(callback)
def dataResponse(data):
print data.index
class Data(ctypes.Structure):
_fields_ = [("index", c_int)]
我更改爲WINFUNCTYPE,錯誤也存在。 – Eric