文字列のマーシャリング

プラットフォーム呼び出しでは、文字列パラメーターがコピーされ、必要に応じて .NET Framework 形式 (Unicode) からアンマネージ形式 (ANSI) に変換されます。 マネージ文字列は変更不可なので、プラットフォーム呼び出しでは関数から制御が返されるときに、アンマネージ メモリからマネージ メモリへとマネージ文字列はコピーされません。

文字列に関するマーシャリングのオプションを次の表に列挙し、その使用方法を説明し、関連 .NET Framework サンプルへのリンクを示します。

文字列

説明

サンプル

値渡し。

文字列を In パラメーターとして渡します。

MsgBox

結果として渡す。

アンマネージ コードから文字列を返します。

文字列

参照渡し。

StringBuilder を使用して、文字列を In/Out パラメーターとして渡します。

Buffers

構造体に組み込んで値渡し。

文字列を In パラメーターである構造体に組み込んで渡します。

Structs

構造体に組み込んで参照渡し (char*)

文字列を In/Out パラメーターである構造体に組み込んで渡します。 アンマネージ関数は文字バッファーへのポインターを要求します。またバッファーのサイズは構造体のメンバーです。

文字列

構造体に組み込んで参照渡し (char[])

文字列を In/Out パラメーターである構造体に組み込んで渡します。 アンマネージ関数は埋め込み文字バッファーを要求します。

OSInfo

クラスに組み込んで値渡し (char*)

文字列をクラスに組み込んで渡します (クラスは In/Out パラメーターです)。 アンマネージ関数は、文字バッファーへのポインターを要求します。

OpenFileDlg

クラスに組み込んで値渡し (char[])

文字列をクラスに組み込んで渡します (クラスは In/Out パラメーターです)。 アンマネージ関数は埋め込み文字バッファーを要求します。

OSInfo

文字列の配列として値渡し。

値渡しされる文字列の配列を作成します。

配列

文字列を含む構造体の配列として値渡し。

文字列を含む構造体の配列を作成し、その配列を値渡しします。

配列

参照

概念

プラットフォーム呼び出しのデータ型

クラス、構造体、および共用体のマーシャリング

型の配列のマーシャリング

各種のマーシャリングのサンプル

その他の技術情報

プラットフォーム呼び出しによるデータのマーシャリング