我想從一個似乎在Delphi中創建的DLL中調用函數。的由DLL支持的一些功能的一例是:Python可以在DLL中調用Delphi函數嗎?
function oziDeleteWpByName(var name:pansichar):integer;stdcall
我寫的Python代碼訪問上述功能不工作。
from ctypes import *
libc = cdll.OziAPI
name ='test'
pi = pointer(name)
delname = libc.oziDeleteWpByName
delname(name)
看來我錯誤的數據類型傳遞給函數。任何想法如何做到這一點對嗎?
感謝它的工作。現在請使用此功能:
function oziGetOziVersion(var Version:pansichar; var DataLength:integer):integer; stdcall; OziExplorer的版本在Version變量中返回。
現在如何通過'var版'時,它也將返回。
'var name:pansichar'意味着'name'參數可以被修改並返回給調用者。這個函數真的這麼做嗎?你打算在函數返回後讀取'name'的內容嗎? – 2012-01-09 15:03:54
另外,您正在使用哪個版本的Python?可以改變字符串編碼。 – 2012-01-09 15:06:48
是的,那個'var'聲明是可疑的。如果你,用戶1138 ...寫了這個DLL,你爲什麼這麼做? – 2012-01-09 15:07:47