Python工作筆記-往dll中傳入char*型別的引數並且如何接收char*的值
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
執行截圖如下:
相關文章
- char型別的數值轉換型別
- 【筆記】VS2017中出現 "const char *" 型別的值不能用於初始化 "char *" 型別的實體筆記型別
- 當char型變數遇上char*型的指標變數指標
- 【C++】CONST CHAR*型別的值不能用於初始化CHAR*型別的實體C++型別
- PL/SQL中char型別的暗門SQL型別
- E0144 "const char *" 型別的值不能用於初始化 "char *" 型別的實體型別
- NTMySQL中varchar和char型別的區別heeMySql型別
- VS中”LPTSTR" 型別的值不能用於初始化 "char *" 型別的實體型別
- 避免使用Oracle的char型別Oracle型別
- C,C++中如何向main(int argc , char argv[])傳遞引數C++AIGC
- VS C++ 2017中const char* 型別的值不能用於初始化char*的解決C++型別
- char str[]和char *str的區別
- const char*, char const*, char*const的區別
- "LPWSTR" 型別的值不能用於初始化 "char *" 型別的實體型別
- 【VS2019 C++】"const char *" 型別的值不能用於初始化 "char *" 型別的實體C++型別
- 聊聊Oracle 11g中的char型別使用Oracle型別
- const char* 型別不能用於初始化char* 型別實體型別
- 應用中避免使用char/nchar型別型別
- 工作學習筆記(三)to_char函式筆記函式
- C++中string、char *、char[]、const char*的轉換C++
- SQL插入語句中有單引號 && SQL中char nchar varchar nvarchar的區別 && Java中字元(串)和數值型別的轉換SQLJava字元型別
- ABAP中Char型別資料轉換成Decimal型別型別Decimal
- Oracle的資料型別:char/varchar2Oracle資料型別
- 給一個介面傳遞引數,並接收返回的引數
- const char*, char const*, char*const 有何區別?
- MySQL字元資料型別char與varchar的區別MySql字元資料型別
- C++中出現《E0144 "const char *" 型別的值不能用於初始化 "char *" 型別的實體》的錯誤解決方法C++型別
- varchar和char的區別
- C# - char型別的一些介紹C#型別
- 如何將一個數字轉換為字串並且按照指定格式顯示?--TO_CHAR字串
- VS2019【C++報錯】E0144"const char *" 型別的值不能用於初始化 "char *" 型別的實體C++型別
- MySQL中CHAR和VARCHAR區別MySql
- 談MySQL中char varchar區別MySql
- oracle中char與varchar2的區別Oracle
- Rust中 String、str、&str、char 的區別Rust
- 關於VS2017中const char *不能用於初始化char *型別的實體的問題型別
- MySQL資料型別操作(char與varchar)MySql資料型別
- MVC如何避免控制器方法接收到的值不能被轉換為引數型別MVC型別