トレーニング
文字列のマーシャリング
プラットフォーム呼び出しは、文字列のパラメーターをコピーし、必要な場合は、.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 |
文字列の配列として値渡し。 | 値によって渡される文字列の配列を作成します。 | 配列 |
文字列を含む構造体の配列として値渡し。 | 文字列を含む構造体の配列を作成し、配列を値で渡します。 | 配列 |
.NET に関するフィードバック
.NET はオープンソース プロジェクトです。 フィードバックを提供するにはリンクを選択します。
その他のリソース
ドキュメント
-
クラス、構造体、および共用体のマーシャリング - .NET Framework
クラス、構造体、および共用体をマーシャリングする方法を確認します。 クラス、入れ子になった構造体を含む構造体、構造体の配列、および共用体のマーシャリング サンプルを表示します。
-
文字列に対する既定のマーシャリング - .NET Framework
.NET でのインターフェイス、プラットフォーム呼び出し、構造体、固定長文字列バッファーの文字列に対する既定のマーシャリング動作について確認します。
-
さまざまな型の配列のマーシャリング - .NET Framework
値渡しまたは参照渡しの整数、値渡しの 2 次元の整数、値渡しの文字列、および整数または文字列を含む構造体など、さまざまな配列の型をマーシャリングします。