问题描述
- python调用dll的释放问题
- 小弟用python 写了个调用SiInterface.dll的adaptor.exe
这里有调用win32api.FreeLibrary()释放dll了,
运行该adaptor.exe后,做完一个交易后,其他程序调用这个dll做交易就会加载不到这个dll请问是我没释放成功SiIterface.dll 还是adaptor.exe打开运行后,他就一直占用着SiInterface.dll
因为在使用adaptor.exe做完一个交易后关闭该exe,再使用别的程序调用SiInterface.dll就是ok的请教各位大神如何在不关闭adaptor.exe情况下 还能是别的程序能够访问该SiInterface.dlldef call_mi_dll(sIn):dll = ctypes.WinDLL('SiInterface.dll')sIn += ' '*(512-len(sIn))sOut = ' '*512i=' '*1024i=ctypes.c_char_p(i)sIn = ctypes.c_char_p(sIn)sOut = ctypes.c_char_p(sOut) print ""calling: SiInterface.dll -> INIT""ret=dll.INIT(i)print ""Init :""+str(ret)print ""calling: SiInterface.dll -> BUSINESS_HANDLE""dll.BUSINESS_HANDLE(sIn sOut)win32api.FreeLibrary(dll._handle)return sOut.value
解决方案
dll可以被多个进程共享,先看其他进程是否调用到你的dll函数,是不是函数内部处理的问题
时间: 2024-09-09 02:43:44