次の方法で共有


文字列のマーシャリング

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

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

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

こちらも参照ください