プラットフォーム呼び出しでは、文字列パラメーターがコピーされ、必要に応じて .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 |
値による文字列の配列として。 | 値渡しされる文字列の配列を作成します。 | 配列 |
文字列を含む構造体の配列として値渡し。 | 文字列を含む構造体の配列を作成し、配列を値渡しします。 | 配列 |
こちらも参照ください
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET