1

以下のデザインをご覧ください。コンポーネントを表示するために作成されたブロック図です。

ここに画像の説明を入力

これはデスクトップ アプリケーションの図であることに注意してください。ここに表示されるのはコンポーネントであり、クラスではありません。以下は説明です

C++/CLI code - The main GUI and the connector for all other services
OpenCV C++ Code - set of Opencv classes for image and video processing
C++ SMS Code - set of SMS classes written in C++

C# wrapper DLL - The dll to access the driver
C# Driver DLL - The driver of the device, written in C#
Speech recognition C# dll - set of speech recognition classes

Google Map DLL/JAR - Google map classes written in either C# or Java

Device - The device I need to access

さて、私の質問です。

ご覧のとおり、これはテクノロジと言語のコレクションです。私にとっては、すべての Speech コードを C++/CLI に移行するのではなく、C# で記述する方がかなり簡単に思えます (他の C# dll は C# であることが必須です)。しかし、他の C++ コードと統合する dll が多すぎるように感じます。C# または Java で GUI を作成できません。Opencv (主なもの) を実装する必要があり、最も簡単な方法は C++ です。

では、言語とテクノロジーをこのように混同しても問題ないですか?

4

2 に答える 2

2

ソリューションが期待どおりのパフォーマンスを提供し、保守が容易であれば、問題はないと思います。Linux を見ると、多くの場合一緒にリンクされた多数の小さなプログラムで構築されているため、perl、php、ruby、C コードなどで C++ を使用することは珍しくありません。

たとえば、OSX では、Objective-C で UI (cocoa) コードを記述する必要がありますが、ドライバーは C++ と C のカーネル拡張機能を使用します。

于 2013-05-16T15:19:17.763 に答える