本隨筆解決 Python使用ctypes 調用c++dll 字符串返回類型函數,在python中顯示為數字;原文解決方案見so:
1. 據說無關python的ctypes的事。
2. C++定義導出函數的時候,需要使用const char *,而不能使用string返回類型,如:
extern "C"
const char *return_string(char* name){
cout<<strlen(name)<<endl;
cout<<name<<endl;
s += name;
}
3. 上面的函數定義也看到了,在函數體中使用string臨時變量的話,需要static string str這樣的形式定義,聲明為靜態變量。
4. 給string類型臨時變量賦值的時候,必須使用+=,而不是=。
5. 最后往出傳遞的話,使用s.c_str()做個轉換。