C类型卸载d

2024-04-20 13:15:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在加载一个包含如下类型的dll:

lib = cdll.LoadLibrary("someDll.dll");

当我用完这个库时,我需要卸载它以释放它使用的资源。我在文档中找不到任何关于如何做到这一点的信息。我看到一个相当老的帖子:How can I unload a DLL using ctypes in Python?。我希望有一些明显的事情我没有发现,少了一个黑客。


Tags: 文档信息类型lib资源can帖子how
1条回答
网友
1楼 · 发布于 2024-04-20 13:15:32

我发现唯一真正有效的方法是负责调用LoadLibraryFreeLibrary。像这样:

import ctypes

# get the module handle and create a ctypes library object
libHandle = ctypes.windll.kernel32.LoadLibraryA('mydll.dll')
lib = ctypes.WinDLL(None, handle=libHandle)

# do stuff with lib in the usual way
lib.Foo(42, 666)

# clean up by removing reference to the ctypes library object
del lib

# unload the DLL
ctypes.windll.kernel32.FreeLibrary(libHandle)

相关问题 更多 >