0

私の Direct2D アプリケーションのちょっとした助けです。IVector<double>^ pointsC++ アプリケーションにコレクションがあります。このポイント コレクションを C# コードから設定します。したがってIList<double>、C# からIVector<double>^ポイントに設定して、double のリストを取得できます。

double[]のコレクションをC++ コードに設定する必要があるという私の要件は次のとおりです。C# では、次の構文でコレクションを簡単に宣言できますList<double[]>。しかし、私は C++ を初めて使用するため、Windows ストア アプリの C++ ライブラリで利用可能な API についてあまり詳しくありません。誰でもこれについて私を助けてくれます.?. List<double[]>したがって、最終的に私の要件は、「C# コードから C++ ライブラリに設定できるようにする必要がある」という 2 行で簡単になります。

どんな助けでも大歓迎です。

-デビッド・C

4

1 に答える 1

2

コードをまったく表示していないため、問題が何であるかは100%わかりませんが、配列構文につまずいているだけかもしれません。

C++/CLI では、角かっこ ( double[]) を使用して配列を宣言できます。これは機能しますが、これはアンマネージ配列です。それをマネージド クラスのフィールドとして持つことはできず、それをマネージド API に渡すのは簡単ではありません。

マネージ配列の構文はarray<double>. これは参照型なので^、この型の変数がある場合は が必要になります。

array<double>^ buffer = gcnew array<double>(1024);

したがって、 C# はC++/CLI にList<double[]>変わります。List<array<double>^>

于 2013-09-04T15:15:19.923 に答える