卸载在Python中加载的DLL

时间:2015-09-23 06:44:50

标签: python ctypes python-cffi

在Windows上我有一个我们自己创建的DLL,其中包含另一个DLL。问题是当在Matlab中使用loadlibrarycalllibunloadlibrary时,一切都很好。

在Python中,我尝试使用ctypescffi,两者都有相同的结果。我可以加载DLL并调用函数,但我无法再次退出。 Python挂起,我必须从任务管理器结束任务。

ctypes我试图打电话

import _ctypes
_ctypes.FreeLibrary(lib._handle)

这里建议Free the opened ctypes library in Python没有效果。此外,我试图调用显式函数来卸载其他DLL。

任何人都可以提供一个提示或解决方案,解释为什么它不会卸载/挂起?

1 个答案:

答案 0 :(得分:-1)

我在这里找到了部分答案How can I unload a DLL using ctypes in Python?

显然,必须直接拨打电话_ctypes.FreeLibrary

# Release DLL(?)
handle= lib._handle
 _ctypes.FreeLibrary(handle)