のctypesでDLLを読み込む:WindowsError:[エラー126]これは、Python 2.7とWindows 7で正常に動作します
lib = ctypes.cdll.LoadLibrary('prov_means')
provmeans = lib.provmeans
ライブラリprov_means.DLLは私の作業ディレクトリにあります。これは、依存関係のない単純なスタンドアロンC関数であるprovmeans()をエクスポートします。
私は、Windows XPとPython 2.7で同じことをしようとすると、私は
Traceback (most recent call last):
File "D:\python\Auxil\src\auxil.py", line 130, in <module>
lib = ctypes.cdll.LoadLibrary('prov_means')
File "C:\Python27\lib\ctypes\__init__.py", line 431, in LoadLibrary
return self._dlltype(name)
File "C:\Python27\lib\ctypes\__init__.py", line 353, in __init__
self._handle = _dlopen(self._name, mode)
WindowsError: [Error 126] The specified module could not be found
を取得し、私は、Windows \ System32ににDLLをコピーしようとしたともして
"d:\\python\\auxil\\src\\prov_means"
フルパス名を入力しています「.DLL」拡張子を使用しないでください。何も動作しません。
Davidさんありがとうございます。ターゲットマシンにはないVisual Studio 2010 Expressを使用してWindows 7マシンでコンパイルすると、それは非常に納得のいくものでした。私は、C++ランタイムを推奨されたとおりにターゲットマシンにインストールして再起動しました。残念ながら同じエラー。 – MortCanty
プロファイルモードでDependency Walkerを使用してこれを確認できます。しかし、問題を引き起こしている依存関係ではないことを二重チェックするために、 '/ MT'でDLLを再構築することを検討したいと思います。 –
右、/ MTで再構築され、ターゲット上で実行されるようになりました。どうもありがとう! – MortCanty