2009-09-01 32 views
3

だから、私はPythonで使用したいdllに変換されるvbの関数を持っています。しかし、それを使用しようと、私はエラーメッセージ を取得し、これはPythonでvb dllを呼び出す

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

VBの関数であり、これは私が

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

pythonでそれを呼び出すしかし、私はとても正しい方法は何であるエラーを取得する方法であります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 

私は今までオンラインで解決策を探していましたが、解決策はありませんでした。これはc progs用であるため、cdllを使用することはできません。

私はいくつかのpythonとdllに関連する質問を見てきましたが、これまでのところ私の問題では解決策がありません。

+0

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

を試してみて、あなたが他の言語から 'dll'にアクセスすることはできますか? – voyager

+0

dllによって関数がエクスポートされていることを確認しようとしましたか?依存関係ウォーカーhttp://www.dependencywalker.com/で確認してください。 – luc

+0

VB6かVB.netかどうか確認できますか? – luc

答えて

0

私はあなたの特定の質問に対する答えを知らないが、それはVB.NETだ場合、あなたはネイティブIronPythonでそれを呼び出すことができます。

+0

それは解決策ではありません。 IronPythonはまったく別のパッケージです。ここでの問題は、Pythonでvb dllを使用することです。現時点では不可能なようです。 –

0

パブリックアクセス修飾子を使用すると、スコープの問題が発生する可能性があります。この機能は外部の発信者には表示されない場合があります。あなたのdll

関連する問題