我试图加载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