文字列のマーシャリング

プラットフォーム呼び出しは、文字列のパラメーターをコピーし、必要な場合は、.NET Framework 形式 (Unicode) からアンマネージ形式 (ANSI) に変換します。 マネージド文字列は変更できないため、プラットフォーム呼び出しでは、関数から戻るときに、アンマネージド メモリからマネージド メモリに文字列がコピーされて戻されることはありません。

次の表では、文字列のマーシャリング オプションの一覧、それぞれの使用方法の説明、対応する .NET Framework サンプルへのリンクを示します。

String 説明 サンプル
値渡し。 In パラメーターとして文字列を渡します。 MsgBox
結果として。 アンマネージ コードから文字列を返します。 文字列
参照渡し。 StringBuilder を使って In/Out パラメーターとして文字列を渡します。 バッファー
構造体で値渡し。 In パラメーターである構造体で文字列を渡します。 構造体
構造体で参照渡し (char*) In/Out パラメーターである構造体で文字列を渡します。 アンマネージ関数は文字バッファーへのポインターを必要とし、バッファー サイズは構造体のメンバーです。 文字列
構造体で参照渡し (char[]) In/Out パラメーターである構造体で文字列を渡します。 アンマネージ関数は、埋め込み文字バッファーを必要とします。 OSInfo
クラスで値渡し (char*) クラスで文字列を渡します (クラスは In/Out パラメーターです)。 アンマネージ関数は、文字バッファーへのポインターを必要とします。 OpenFileDlg
クラスで値渡し (char[]) クラスで文字列を渡します (クラスは In/Out パラメーターです)。 アンマネージ関数は、埋め込み文字バッファーを必要とします。 OSInfo
文字列の配列として値渡し。 値によって渡される文字列の配列を作成します。 配列
文字列を含む構造体の配列として値渡し。 文字列を含む構造体の配列を作成し、配列を値で渡します。 配列

関連項目