Managed C++ でアプリケーションを作成しようとしていますが、文字列の配列を宣言する方法がわかりません。
文字列^ linet[];
エラーをスローします
'System::String ^': ネイティブ配列にこのマネージド型を含めることはできません
したがって、管理されたデータ型に対してこれを行う別の方法があると思います。正確には何ですか?
Managed C++ でアプリケーションを作成しようとしていますが、文字列の配列を宣言する方法がわかりません。
文字列^ linet[];
エラーをスローします
'System::String ^': ネイティブ配列にこのマネージド型を含めることはできません
したがって、管理されたデータ型に対してこれを行う別の方法があると思います。正確には何ですか?
本当にマネージ C++ のことですか? C++/CLI ではありませんか?
実際に C++/CLI を使用していると仮定すると (投稿したエラー メッセージのため)、これを行うには 2 つの方法があります。
array<String^>^ managedArray = gcnew array<String^>(10);
マネージド配列、つまり C# の string[] と同じ型を作成します。
gcroot<String^>[] unmanagedArray;
アンマネージ C++ 配列を作成します (実際に配列でこれを試したことはありません。stl コンテナーでうまく機能するので、ここでも機能するはずです)。
http://www.codeproject.com/KB/mcpp/cppcliarrays.aspx
それはあなたが必要とするすべての答えを持っているはずです:)
マネージ C++ (別名 C++/CLI 別名 C++/CLR) を使用する場合、すべての作業で変数の型を考慮する必要があります。「管理された」タイプ (基本的に、System::Object から派生したものすべて) は、管理されたコンテキストでのみ使用できます。標準 C++ 配列は、基本的にヒープ上に sizeof(type) x NumberOfItems バイトの固定サイズのメモリ ブロックを作成し、これを反復処理します。管理された型は、元のヒープと同じ場所に留まることが保証されていないため、そうすることができません:)
.Net のコレクション クラスを使用します。例: _
List<String^>^ dinosaurs = gcnew List<String^>();