三日月館【別館】開発・制作Tips集
[.NET] マネージの文字列ハンドル(String^)をアンマネージの文字列ポインタ(char*)に変換する
最終更新:
fumiduki1985
-
view
MarshalクラスのStringToHGlobalAnsiメソッドを使用する。
Marshalクラスはアンマネージコードを扱うときに使用できるさまざまなメソッドを提供するクラス。
このメソッドで取得したポインタは、同クラスのFreeHGlobalメソッドを呼び出してメモリを解放する必要がある点に注意。
Marshalクラスはアンマネージコードを扱うときに使用できるさまざまなメソッドを提供するクラス。
このメソッドで取得したポインタは、同クラスのFreeHGlobalメソッドを呼び出してメモリを解放する必要がある点に注意。
記述例:
// ハンドルをポインタに変換 char* ptr = (char*)(void*)Marshal::StringToHGlobalAnsi(string_handle); // アンマネージの文字列ポインタに関する処理を行う // 割り当てられたメモリを解放 Marshal::FreeHGlobal((IntPtr)ptr);