Я пытаюсь зарегистрировать функции обратного вызова для библиотеки .dll
в Python с помощью ctypes.Но это требует функций обратного вызова в структуре / поле.Потому что это не работает (без ошибок, но функции обратного вызова ничего не делают), я полагаю, что я не прав.Может ли кто-нибудь помочь мне?
Есть код, который, надеюсь, объясняет, что я пытаюсь сделать:
import ctypes
firsttype = CFUNCTYPE(c_void_p, c_int)
secondtype = CFUNCTYPE(c_void_p, c_int)
@firsttype
def OnFirst(i):
print "OnFirst"
@secondtype
def OnSecond(i):
print "OnSecond"
class tHandlerStructure(Structure):
`_fields_` = [
("firstCallback",firsttype),
("secondCallback",secondtype)
]
stHandlerStructure = tHandlerStructure()
ctypes.cdll.myDll.Initialize.argtypes = [POINTER(tHandlerStructure)]
ctypes.cdll.myDll.Initialize.restype = c_void_p
ctypes.cdll.myDll.Initialize(stHandleStructure)