1. 当前位置:网站首页 > Python

DLL的加载及卸载方法


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

本文最后更新于2023-10-7,已超过 3个月没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!
版权说明

本文地址:http://www.liuyangdeboke.cn/?post=52
未标注转载均为本站远程,转载请注明文章出处:

发表评论

联系我们

在线咨询:点击这里给我发消息

微信号:17721538135

工作日:9:00-23:00,节假日休息

扫码关注