在python中调用vb dll

时间:2009-09-01 16:02:39

标签: python vb.net dll vb6

所以我在vb中有一个函数转换为我想在python中使用的dll。但是,尝试使用它,我收到一条错误消息  这是VB函数

Function DISPLAYNAME(Name)
MsgBox ("Hello " & Name & "!")
End Function

这就是我在python中调用它的方式

from ctypes import *
test = windll.TestDLL
print test
print test.DISPLAYNAME("one")

但是我得到错误,所以调用dll的正确方法是什么

Traceback (most recent call last):
  File "C:\Test\testdll.py", line 4, in <module>
    print test.DISPLAYNAME("one")
  File "C:\Python26\lib\ctypes\__init__.py", line 366, in __getattr__
    func = self.__getitem__(name)
  File "C:\Python26\lib\ctypes\__init__.py", line 371, in __getitem__
    func = self._FuncPtr((name_or_ordinal, self))
AttributeError: function 'DISPLAYNAME' not found

我一直在网上寻找,但到目前为止还没有解决方案。不能使用cdll,因为这是用于c progs。

我已经查看了一些与python和dll相关的问题,但到目前为止还没有解决方案适用于我的问题。

2 个答案:

答案 0 :(得分:0)

我不知道你的具体问题的答案,但如果它是VB.NET,你可以在IronPython中原生地调用它。

答案 1 :(得分:0)

这可能是一个范围问题,如果没有公共访问修饰符,该函数可能对外部调用者不可见。尝试

Public Function DISPLAYNAME(Name)
MsgBox ("Hello " & Name & "!")
End Function

在你的dll中