因此,我将一个DLL注入到Cython应用程序中以扩展其功能。我使用以下代码执行此操作: 注意:使用Python 2.7;使用旧的ModuleNoBlock方案
PyGILState_STATE sMain = PyGILState_Ensure();
PyObject* mHook = PyImport_ImportModuleNoBlock("hookmodule");
PyGILState_Release(sMain);
现在,当我将DLL注入应用程序并打印错误时,我得到以下内容:
ImportError: Failed to import hookmodule because the import lockis held by another thread.
我找到了imp模块here
的来源但是_PyImport_ReleaseLock(void)
只有在从获取锁定的同一线程中调用它时才会释放锁定。
是否可以这样做?
答案 0 :(得分:0)
固定。使用
_PyImport_ReInitLock(void)
导入前