Python工作筆記-往dll中傳入char*型別的引數並且如何接收char*的值
阿新 • • 發佈:2018-12-15
dll中getColorName對應的定義宣告如下:
因為Python中沒有char這種資料,所以直接用會有如下的問題:
原始碼如下:
import ctypes
if __name__=='__main__':
ll=ctypes.cdll.LoadLibrary
lib=ll("judgeColor.dll")
print(lib.getColorName("red.png"))
問題如下:
使用如下的方式,改變為byte在傳入給dll,接收時呼叫string_at,轉成string。
原始碼如下:
import ctypes if __name__=='__main__': ll=ctypes.cdll.LoadLibrary lib =ll("judgeColor.dll") charPointer=bytes("black.png","gbk") result=lib.getColorName(charPointer) pyResult=ctypes.string_at(result); print(pyResult.decode("gbk")) pass
執行截圖如下: