我有一个 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)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)