DLL使用
- 使用DLL时,因为加载后默认会将文件占用,但是算法SDK那边存在需要实时修改替换的需求,前期未发现好方法,只有通过多进程方式进行读取释放,近期发现一个方法可以解决,故将解决办法进行一次记录
from ctypes import *
....
其他代码块
....
if self.dll_server is None:
options = QFileDialog.Options()
options |= QFileDialog.ReadOnly # Set read-only mode if needed
file_filter = "Back files (*.dll)"
selected_file, _ = QFileDialog.getOpenFileName(
self,
"选择文件",
".",
file_filter,
options=options
)
if selected_file:
self.dll_icon.setIcon(FluentIcon.DELETE)
self.dll_server = CDLL(selected_file)
else:
self.dll_icon.setIcon(FluentIcon.FOLDER_ADD)
# 重点卸载方法,实测有效
windll.kernel32.FreeLibrary(c_void_p(int(self.dll_server._handle)))
self.dll_server = None
版权说明
本文地址:http://www.liuyangdeboke.cn/?post=52
未标注转载均为本站远程,转载请注明文章出处:
发表评论