はじめに:私はqt-opencv-multithreaded - C++ で書かれた Qt/OpenCv アプリケーション (Windows 上で動作) を持っています。しかし、C# で作成された別のアプリケーションもあります。
C++ アプリはビデオの分析を行い、ロボット (位置、回転) を識別します。そして、ProcessingThread 内の変数に格納します。C# アプリはこれらの値を受け取り、ロボットの移動先を決定します。
C# プロジェクトをスタートアップ プロジェクトとして使用することにしました。そして、 qt-opencv-multithreaded の C++/cli ラッパーを作成しようとしました。
質問: 2 つの質問があります。
別のプロジェクトから Qt アプリを実行するにはどうすればよいですか? インクルード MainWindow.h をラッパー プロジェクトに追加し、そこからインスタンスを作成しようとしました。「追加のインクルードディレクトリ」にqt-opencv-multithreadedのディレクトリも追加しましたが、qtディレクトリも必要で、正しい方法ではないのではないかと心配しています。では、どうすればいいですか?
ラッパーを使用する必要があることはわかっています。しかし、スレッドの処理で C++ プロジェクトのロボットのリストに格納されているデータを C# プロジェクトに送信するにはどうすればよいですか? (ロボットには cv::Point2i の位置と cv::Point2i の回転、およびその他の重要ではない内部クラスが含まれます)値を文字列に「疑似シリアル化」し、C# に送信してから、準備されたオブジェクトに「逆シリアル化」しようとしました。しかし、それはどういうわけか間違っているようです。必要なことを行う簡単な方法はありますか?
ありがとうございました