我需要很多的轉換,從System::String^
到char*
我CLI的包裝和我寫的函數,但是在返回前char*
我不能釋放堆空間! (渡過的時間堆錯誤)轉換系統::字符串爲char *在功能上與StringToHGlobalAnsi
轉換
char* ManagedReaderInterface::SystemStringToChar(System::String ^source)
{
char* str2 = (char*)(void*)Marshal::StringToHGlobalAnsi(source);
return str2;
}
我使用的功能等:
GetSomething(SystemStringToChar(str), value);
任何想法?
首先你可以使用'char *'而不是'System :: String'。因爲你正在做'很多'轉換 –
它是一個本地C++類的包裝,是的它應該是一個CLI:CLI函數中的System:String! – leon22