文字列のマーシャリング

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

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

文字列 説明 サンプル

値渡し。

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

MsgBox

結果として渡す。

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

String

参照渡し。

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

Buffers

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

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

Structs

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

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

String

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

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

OSInfo

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

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

OpenFileDlg

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

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

OSInfo

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

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

配列

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

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

配列

参照

概念

プラットフォーム呼び出しのデータ型
クラス、構造体、および共用体のマーシャリング
型の配列のマーシャリング
各種のマーシャリングのサンプル

その他の技術情報

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