-1

Ctypes に質問がありますが、何が間違っているのかわかりません。はい、私は Python の初心者で、ここで他の投稿を検索しました。したがって、アドバイスをいただければ幸いです。

やりたいこと:

FXCM C++ APP ファンションを Python 3.3 にロードして、サーバーに接続するために呼び出すことができるようにしたいだけです。どうやら Ctypes が最良のツールのようです。したがって、Python の簡単なコードは次のとおりです。

import os
dirlist = os.listdir('ForexConnectAPIx64/bin')
from pprint import pprint
pprint(dirlist)


from ctypes import  *
myDll = cdll.LoadLibrary ("ForexConnectAPIx64/bin/ForexConnect.dll")

結果を与える:

Traceback (most recent call  File "C:\Users\scaberia3\Python_Projects      \FTC\ListDir_Test.py", line 20, in <module>
myDll = cdll.LoadLibrary ("ForexConnectAPIx64/bin/ForexConnect.dll")
File "C:\Python33\lib\ctypes\__init__.py", line 431, in LoadLibrary
return self._dlltype(name)
File "C:\Python33\lib\ctypes\__init__.py", line 353, in __init__
self._handle = _dlopen(self._name, mode)
OSError: [WinError 126] Das angegebene Modul wurde nicht gefunden  (Module not found)

['ForexConnect.dll',
'fxmsg.dll',
'gsexpat.dll',
'gslibeay32.dll',
'gsssleay32.dll',
'gstool2.dll',
'gszlib.dll',
'java',
'log4cplus.dll',
'msvcp80.dll',
'msvcr80.dll',
'net',
'pdas.dll']                   

パスが正しいことを意味します ForextConnect.dll が存在し、非常に単純な間違いを犯す可能性がありますが、何の手がかりもありません。

4

1 に答える 1

0

Dependency Walker を使用して、DLL を手動でロードする正しい順序を把握するか、単にディレクトリをシステム検索パスに追加することができます。

dllpath = os.path.abspath('ForexConnectAPIx64/bin')
os.environ['PATH'] += os.pathsep + dllpath
myDLL = CDLL('ForexConnect.dll')
于 2013-03-27T17:05:50.147 に答える