我試圖加載Python中的DLL,我想用使用其eConnect()函數ctypes如何使用一個DLL從Python的
我從DLL的源代碼知道什麼:
- 從*的.cpp源代碼:
bool eConnect(const char *host, UINT port, int clientId=0);
- 從依賴關係沃克工具:功能序是6和未修飾的名字是
[email protected]@@[email protected]
我試圖從myfunction和myfunction2兩種方式訪問eConnect,但是我可能弄錯了。這裏是我的代碼:
from ctypes import *
def main():
IP = c_char_p('127.0.0.1')
port = c_uint(7496)
client_id = c_int(0)
myfunction = getattr(cdll.TwsSocketClient, "[email protected]@@[email protected]")
myfunction2= cdll.TwsSocketClient[6]
print myfunction
print myfunction2
print myfunction(IP, port, client_id,IP)
if __name__ == "__main__":
main()
我得到下面的錯誤:
「WindowsError:異常:訪問衝突讀取0x0000002D」
我迫切需要一些幫助在這裏(我不知道C++) 。 謝謝!
函數是從C++代碼中導出爲'stdcall'還是'cdecl'?另外,我會把它包裝在一個'extern「C''中,這樣你就不會得到那個令人反感的名字! – 2011-02-23 18:13:38