0

Open CV を使用することになっています。Open CV は C++ でプログラミングでき、.NET グラフィック インターフェイス アプリケーションにデプロイできます。インターフェイスの特性については、C# を使用したいと思っています。

これに対する最善のアプローチは何ですか?

4

1 に答える 1

3

同じアプリケーションで C# と C++ を使用できる 2 つの方法を知っています。

最も簡単な方法は、C++ と C# で記述されるコンポーネントを分離して、一方のコンポーネントが他方のコンポーネントに依存するが、相互に依存しない場合です。この場合、C# で 1 つ、VC++ で 1 つの 2 つのアセンブリを作成し、一方を他方から参照します。これは、Visual Studio の UI でサポートされているため、最も簡単な方法です。

ただし、相互依存関係がある場合、つまり、クラス A がクラス B について知る必要があり、クラス B がクラス A について知る必要がある場合、クラス A は C++ で記述され、クラス B は記述される場合、そのアプローチは機能しません。 C#で。マルチファイル アセンブリ (ネットモジュール) と呼ばれる .NET のあまり知られていない機能を使用して、このようなさまざまな言語でクラスを記述することは依然として可能です。

手順については、「方法: マルチファイル アセンブリをビルドする」および「マルチファイル アセンブリをビルドする」を参照してください。一般に、C++ コンパイラは他のコンパイラよりも優れていることを覚えておくと便利です。手順は、C# で半分を NetModule にコンパイルし、それを C++ コンパイラとリンカーに渡し、それを C++ パーツにリンクして最終的なアセンブリを作成するというものだったことを覚えているようです。

少量の C# コードのみを作成する場合は、使用したい .NET 機能の VC++ 構文を学習し、C# を完全に避けるという別の方法があります。VC++ は、C# と同じようにマネージ インターフェイスと型を宣言できます。C# で実際のコードをあまり記述しない場合は、こちらの方が簡単かもしれません。

于 2013-09-01T23:21:28.437 に答える