関数を呼び出すためにDLL in pythonをロードしようとしています。
import ctypes
from ctypes import *
dsusb = ctypes.WinDLL('c:\python27\dsusb.dll')
スタックで次のエラーが発生します。
C:\Python27>python test.py
Traceback (most recent call last):
File "test.py", line 4, in <module>
dsusb = ctypes.WinDLL('c:\python27\dsusb.dll')
File "C:\Python27\lib\ctypes\__init__.py", line 365, in __init__
self._handle = _dlopen(self._name, mode)
WindowsError: [Error 193] %1 is not a valid Win32 application
同じコードでcdllも試しました。
私はエラーを調べましたが、Windowsはそれがスペースを含むパスのためであると言います...私は本当に問題ではないと思います...
これを読み込んでいますDLL間違っているか、dllに誤りがある可能性がありますか?
コメントが示唆するように、それはアーキテクチャの問題かもしれません。
64ビットPythonで32ビットDLLを使用している場合、またはその逆の場合、おそらくエラーが発生します。
以前にエラーが発生したため、32ビットPythonでDLLをロードすることをお勧めします。
同じ問題がありました。 VS2015 x64 Native Toolsコマンドプロンプトを使用してCコードをコンパイルすることで修正しました。これですべてが64ビットになりました。
このエラーは、他のすべての必要なdllがない場合にも発生する可能性があります。 dllが依存する他のすべての.dllファイルがあることを確認してください。誰かが指摘したように、Dependency Walkerは優れたツールです。