找不到Python dll函数

时间:2015-01-21 12:24:45

标签: python python-3.x dll dllimport

我已编写如下代码与dll.i进行通信已注册此dll。

from ctypes import cdll
# give location of dll
mydll = cdll.LoadLibrary("C:\Windows\SysWOW64\zkemkeeper.dll")
ip = "172.16.16.70"
port = "4370"
mydll.Connect_Net(ip,port)    

我执行它后得到以下错误。

Traceback (most recent call last):
  File "C:\Python34\fetch.py", line 6, in <module>
    mydll.Connect_Net(ip,port)
  File "C:\Python34\lib\ctypes\__init__.py", line 364, in __getattr__
    func = self.__getitem__(name)
  File "C:\Python34\lib\ctypes\__init__.py", line 369, in __getitem__
    func = self._FuncPtr((name_or_ordinal, self))
AttributeError: function 'Connect_Net' not found      

此外,我能够与此dll通信并使用PHP访问其功能。任何人都可以让我知道可能是什么问题以及如何解决它。

2 个答案:

答案 0 :(得分:1)

试试这个Python代码段:

from win32com.client import Dispatch
zk = Dispatch("zkemkeeper.ZKEM")
ip = "172.16.16.70"
port = "4370"
zk.Connect_Net(IP_address, port)

答案 1 :(得分:0)

AttributeError: function 'Connect_Net' not found      

这意味着DLL不会导出名为'Connect_Net'的函数。也许你的名字错了,或者DLL无法以某种方式导出函数。

其他一些评论:

  • 使用反斜杠转义字符正在运行手套。转义反斜杠,使用原始字符串文字,或使用os.path.join
  • 不要修改系统目录。你应该将你的DLL放在别处。