在Windows上我有一个我们自己创建的DLL,其中包含另一个DLL。问题是当在Matlab中使用loadlibrary
,calllib
和unloadlibrary
时,一切都很好。
在Python中,我尝试使用ctypes
和cffi
,两者都有相同的结果。我可以加载DLL并调用函数,但我无法再次退出。 Python挂起,我必须从任务管理器结束任务。
ctypes
我试图打电话
import _ctypes
_ctypes.FreeLibrary(lib._handle)
这里建议Free the opened ctypes library in Python没有效果。此外,我试图调用显式函数来卸载其他DLL。
任何人都可以提供一个提示或解决方案,解释为什么它不会卸载/挂起?
答案 0 :(得分:-1)
我在这里找到了部分答案How can I unload a DLL using ctypes in Python?
显然,必须直接拨打电话_ctypes.FreeLibrary
。
# Release DLL(?)
handle= lib._handle
_ctypes.FreeLibrary(handle)