.dll
ライブラリのコールバック関数をPythonでctypesに登録しようとしています。しかし、構造体/フィールドにコールバック関数が必要です。それは動作しません(エラーはありませんが、コールバック関数は何もしていません)ので、私は間違っていると思います。誰かが、私を助けてくれますか?Pythonのフィールド型のコールバック関数
うまくいけば、私が何をしようとしています何を説明するコードがあります:
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)
大変感謝しています。 –