我必須使用MFC的C++ dll,我想從python調用它。 這個DLL包含.h文件從Python調用的C++ dll
LONG CommOpen(BYTE port, LONG baud_rate);
然後我在免費軟件dllexp我的函數被調用看到這個標題?CommOpen @ CFIPcmd @@ QAEJEJ @二進制文件z,所以沒有錯誤報告時我在python做
import ctypes
lib = ctypes.WinDLL('C:\Users\toto\FIProtocol.dll')
prototype = WINFUNCTYPE(c_long, c_byte, c_long)
testPt = ctypes.WINFUNCTYPE (prototype)
testApi = testPt (("[email protected]@@[email protected]", lib))
直到有它似乎工作,但後來我想打電話給在Python中的
Long l= CommOpen(5 ,115200);
C++等價,但我沒有鰭我知道如何繼續。 任何幫助將非常感謝!
那麼它看起來很不錯,但我得到>>> L = CommOpen(5,115200) 回溯(最近通話最後一個): 文件 「」,1號線,在 WindowsError:異常:訪問衝突寫入0x1D1C5504但爲什麼? –
將問題分解爲兩部分。編寫一個包含具有相同名稱和參數的函數的簡單DLL,並從Python中調用它。讓它調用['MessageBeep'](http://msdn.microsoft.com/en-us/library/windows/desktop/ms680356(v = vs.85).aspx)N次。它的工作原理,你的DLL可能會失敗,因爲它沒有找到關於它運行的環境的一些假設。 – ixe013
查看我的更新。你永遠不能從ctypes中調用該函數。 –