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