从C#运行C++Qt应用程序

本文关键字:应用程序 C++Qt 运行 | 更新日期: 2023-09-27 18:20:39

简介:我有用C++编写的qt-opencv多线程-qt/opencv应用程序(在Windows上运行)。但我还有另一个用C#编写的应用程序。

C++应用程序对视频进行分析,并识别机器人(位置、旋转)。并将其存储在ProcessingThread内部的变量中。C#应用程序接收这些值并决定机器人应该移动到哪里。

我决定使用C#项目作为启动项目。我尝试为qt-opencv多线程创建C++/cli包装器。

问题:现在我有两个问题:

  1. 如何从另一个项目运行Qt应用程序?我试着将includeMainWindow.h添加到包装器项目中,并从中创建实例。我还将qtopencv多线程的目录添加到"Additional include Directories"中,但它也想要qt目录,我担心这不是一个正确的方法。那么我该如何做呢?

  2. 我知道我需要用包装纸。但我如何在处理线程中将C++项目中机器人列表中存储的数据发送到C#项目?(其中robot包括cv::Point2i位置和cv::Point2i旋转以及其他一些不重要的内部类)我试图将值"伪序列化"为字符串,将其发送到C#,然后将其"反序列化"到准备好的对象。但这似乎有点不对。有没有简单的方法可以满足我的需求?

感谢

从C#运行C++Qt应用程序

  1. 如果你想把它作为一个独立的进程运行,C#提供了这样做的便利

  2. 如果您想从C#调用C++代码的各个函数,请查看p/Invoke