常常會覺得一個返回值不夠,在C#中使用out
或者ref
都很方便,下文記錄字符串類型作為傳入參數且需要修改后返回的處理方式。
C++中的接口:
extern "C" __declspec(dllexport) void GetString(char* str);
C++中的實現:
void GetString(char* str)
{
// str字符串需要傳出去,所以用的是外部給的一塊空間,不要在這里重新為str做new
string a = "Ceshi";
// 注意這里長度需要加1
strcpy_s(str, a.length() + 1, a.c_str());
}
C#中的調用:
// 使用StringBuilder來存儲這個字符串,要注意初始化足夠的長度
StringBuilder sb = new StringBuilder(1024);
GetString(sb);