三日月館【別館】開発・制作Tips集

[.NET] マネージの文字列ハンドル(String^)をアンマネージの文字列ポインタ(char*)に変換する

最終更新:

fumiduki1985

- view
管理者のみ編集可
MarshalクラスのStringToHGlobalAnsiメソッドを使用する。
Marshalクラスはアンマネージコードを扱うときに使用できるさまざまなメソッドを提供するクラス。
このメソッドで取得したポインタは、同クラスのFreeHGlobalメソッドを呼び出してメモリを解放する必要がある点に注意。

記述例:
// ハンドルをポインタに変換
char* ptr = (char*)(void*)Marshal::StringToHGlobalAnsi(string_handle);

// アンマネージの文字列ポインタに関する処理を行う

// 割り当てられたメモリを解放
Marshal::FreeHGlobal((IntPtr)ptr);


このページのタグ一覧
.NETFramework C/CPP プログラミング

記事メニュー
ウィキ募集バナー