首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python不能加载2次库

Python不能加载2次库
EN

Stack Overflow用户
提问于 2014-12-05 14:14:00
回答 1查看 1.3K关注 0票数 1

对不起,我的英语很差。所以。我在Dev c++中编写了简单的动态链接库。它的工作nice.Today --我导入--这是我的project中的库。动态链接库文件路径:lib/my_dll.dll#对话框config.py

代码语言:javascript
复制
DLL_PATH = "lib/my_dll.dll"

进口main.py(config.py)

代码语言:javascript
复制
def my_func():
   dll = CDLL(DLL_PATH)
   return dll.func1()

所以我打开python解释器并编写这个。

代码语言:javascript
复制
from main import *
a = my_func()    #Its work nice so a == "c:\\Windows\\a.txt"

但是我重用这个函数python生成下一个错误。

代码语言:javascript
复制
OSErrror:[WinError 126] The specified module could not be found

感谢您的阅读!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-05 14:50:29

在注释中,说明DLL函数调用一个API函数,该函数显示文件选择对话框。文件选择对话框(除非您告诉他们不要这样做)可以更改工作目录。由于未能指定DLL的完整路径,所以每次都执行DLL搜索。第一次成功是因为您的工作目录恰好是找到DLL所需的内容。随后,由于工作目录更改,DLL搜索失败。

一些建议:

  1. 加载DLL时,始终只使用文件名,或使用完整的绝对路径。在您的情况下,我怀疑您需要使用后者。
  2. 每次调用函数时都加载DLL。只加载一次就够了。不要一次又一次地加载它来浪费时间。
  3. 从Python直接显示文件对话框可能更容易,并避免为此目的创建DLL。
  4. 您的ctype函数导入没有指定restype,因此我不知道如何从该函数中获取文本。更重要的是,我看不出每次调用函数时如何避免内存泄漏。除非文本存在于静态数组中。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27317806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档