Выгрузить DLL, загруженную в Python
В Windows у меня есть DLL, которую мы сделали сами, которая, помимо прочего, загружает другую DLL. Проблема в том, что при использовании DLL в Matlab с loadlibrary
, calllib
а также unloadlibrary
Все отлично.
В Python я пытался использовать ctypes
а также cffi
оба с одинаковыми результатами. Я могу загрузить DLL и вызвать функции, но не могу выйти снова. Python зависает, и я должен завершить задачу из диспетчера задач.
С ctypes
Я пытался позвонить
import _ctypes
_ctypes.FreeLibrary(lib._handle)
как предложено здесь. Освободите открытую библиотеку ctypes в Python без эффекта. Далее я попытался вызвать явную функцию, чтобы выгрузить другую DLL.
Может кто-нибудь дать подсказку или решение, почему он не выгружается / зависает?
1 ответ
Я нашел часть ответа здесь Как я могу выгрузить DLL, используя ctypes в Python?
По-видимому, нужно позвонить позвонить _ctypes.FreeLibrary
непосредственно.
# Release DLL(?)
handle= lib._handle
_ctypes.FreeLibrary(handle)