在Python中调用VB DLL
我有一个用VB写的函数,已经转换成了一个dll文件,我想在Python中使用它。但是在尝试使用的时候,我遇到了一个错误信息。
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程序用的。
我也看了一些关于Python和dll相关的问题,但到目前为止没有任何解决方案适合我的问题。
2 个回答
0
我不知道你具体问题的答案,但如果你使用的是VB.NET,你可以直接在IronPython中调用它。
0
这可能是一个作用域的问题。如果没有使用公共访问修饰符,这个函数可能对外部调用者不可见。你可以试试
Public Function DISPLAYNAME(Name)
MsgBox ("Hello " & Name & "!")
End Function
在你的dll里