首页 新闻 会员 周边

LoadLibrary加载dll时遇到的问题

0
[待解决问题]

current_file = "xx.dll"
current_path = os.path.dirname(os.path.abspath(current_file)) # 返回当前目录
dll_path = current_path + "\xx.dll"
dll_path_reserve = dll_path.replace('\', '/')
方式一

dll = windll.LoadLibrary(dll_path_reserve) # 调用dll文件

方式二
dll = windll.LoadLibrary("G:/autotest_python/common/xx.dll")

其中方式一dll_path_reserve的值 就是'G:/autotest_python/common/ECanVci64.dll'

两种方式在本python文件(a.py)中执行没有报错,当其它文件夹中的python文件调用a.py中的方法时,通过方式一加载dll的方式会报如下错:

E OSError: [WinError 126] 找不到指定的模块。

求解

Crystal202012的主页 Crystal202012 | 菜鸟二级 | 园豆:202
提问于:2020-12-29 10:21
< >
分享
所有回答(2)
0

原因一,可以把文件路径改为绝对路径;把杀毒软件关闭重新操作。

原因二,最基本的解决方式是把相关的DLL 动态库也导进来,这样问题基本就能解决。如果无法确定相关DLL 动态库,引起这类问题的原因很可能是由于你的目标主机没有安装相关的C++环境。解决方法:下载Visual C++ Redistributable运行库,64位版本下载地址为 https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=48145

为乐而来 | 园豆:1432 (小虾三级) | 2020-12-30 09:30
0

可能是路径不对,建议打印出路径来看看

会长 | 园豆:12401 (专家六级) | 2020-12-31 10:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册