我在python中想调用dll库的函数,但是这个dll库的函数参数需要设置一个回调函数指针,如下
void setCallBack(void(*)(Data &a))
Data is C struct, declare as below
typedef struct {
int index,
....
}Data
我在python中调用代码如下:
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)]
调用时发生"WindowsError: [Error -1073741795] Windows Error 0xC000001D"错误, 请大家帮忙看一下如何设置回调函数,感觉如何参数类型是C++引用的话,POINTER好像是不对的。