0

5 つ以上の C++/OpenCV プロジェクトがあり、それらを 1 つのプロジェクトと 1 つの GUI に結合したいと考えています。

例: Button1 をクリックすると、project1 が開始されます。最初に QT を試しましたが、openCV とのリンクに問題があり、MFC を使用しました。プロジェクトの一部を書き直す必要があるため、複雑であることがわかりました。 . 現在、C++ .dll で C#/WPF GUI を使用することを考えていますが、まだいくつか質問があります。

1- このアイデアは本当に可能ですか?

2- 既存の C++ プロジェクトを .dll に変換する方法。.exe または .cpp/.h ファイルを使用する必要がありますか?

3 - 私は OpenCV を使用しており、C# で動作するかどうかわからないため、何か特別なことはありますか?

4-私を助けることができる良いチュートリアルはありますか?

最後に、プロジェクトのコーディングに長い時間を費やし、GUI のステップは簡単だと思っていたので、簡単な作業になることを教えてください。

ありがとうございました

4

1 に答える 1

1

やりたいことに応じて、いくつかの良い方法があります。複数のプロジェクトがある場合の最も簡単な方法は、小さなプログラムを作成して を呼び出すことProcess.Start(example.exe)です。Process.Start() は、その拡張子に対して定義されているデフォルトの方法でファイルを開くだけです。もちろん、それが実際に単一の GUI に統合されるわけではありませんが、本質的にオーバーヘッドはまったくありません。

もう 1 つのオプションは、すべてをクラス ライブラリにコンパイルし、C# アプリケーション内の参照を結果の .dll ファイルに追加することです。その後、追加の実装のオーバーヘッドなしで、.dll ファイルを簡単に呼び出すことができます。

特定のプロジェクトをクラス ライブラリにコンパイルするために必要なことは、何を回収できるか、および C# アプリケーションで再実装する必要があるかによって異なるため、言うのはかなり困難です。絶対に最も簡単な方法は、GUI を破棄して、この時点ではコードだけを気にすることです。そこを過ぎると、WPF を使用して GUI 自体を再実装できます。

.dll ファイルへのコンパイルは比較的簡単です。.dll ファイルがコンパイルされ、参照が C# アプリケーションに追加されると、.dll ファイルからメソッドを呼び出すことは、アプリケーション自体のクラスから呼び出すのと同じくらい簡単です。メソッドにアクセスするには public キーワードが必要であることに注意してください。

VS11 でのクラス ライブラリの生成に関する優れたチュートリアルは、http://msdn.microsoft.com/en-us/library/vstudio/ms235636.aspx にあります

于 2013-08-01T18:26:31.250 に答える