为了把它放到上下文中,我正在为 C DLL 创建一个包装器 - 相当复杂的用例,但请坚持我!
在我的包装类初始化期间,我为我的 C DLL 函数创建别名,以便我的类以后可以轻松访问它们。我要做的另一项任务是将一个回调传递给我的类中的一个函数到我的 DLL,它保存在一个静态变量中供以后使用。
最后,我生成了另一个线程,该线程在我的 DLL 中重复调用一个函数,该函数在其执行过程中的各个点执行一些工作,需要使用在我的类的 init 阶段分配的回调回调到 Python 程序。
当以这种方式调用回调时,我收到以下信息:
WindowsError: exception: access violation reading 0x00000001
我怀疑这与线程有关,因为当我在分配给它的同一线程中测试回调时,DLL 可以成功调用它,并且我的所有参数都传递给 Python。是否对我用来保持回调的 DLL 中的变量实施了一些保护?