[英]C DLL to Python Callback
我有一个Visual C ++ DLL。 我在DLL中导出了一个SetCallback(函数指针)。 我使用此函数从python2.7脚本设置回调函数。 我遵循Python文档中给出的内容。
from ctypes import *
def mypy_callback(number):
print str(number)
d = cdll.LoadLibrary(r"myfunctions.dll")
callback_type = CFUNCTYPE(None, c_int )
d.SetCallback(callback_type(mypy_callback))
在C代码中
typedef void (*callback_function)(int);
void SetCallback(callback_function aCallback)
{
py_callback = aCallback;
}
当我从C DLL调用此函数时,例如:py_callback(999),python只会崩溃。 我可能做错了什么?
以下回调间接寻址将解决此问题:
d = cdll.LoadLibrary(r"myfunctions.dll")
callback_type = CFUNCTYPE(None, c_int )
callback = callback_type(mypy_callback)
d.SetCallback(callback)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.