如何将c# GUI添加到c++代码中

How can I add a C# GUI to C++ code?

本文关键字:c++ 代码 添加 GUI      更新时间:2023-10-16

我编写了c++代码,其中包括一些库并定义了一些函数和main。我正在尝试在c#中添加GUI到此代码。

此代码将数据(double[])发送到服务器。我要做的是用c#创建一个图形用户界面,让我开始发送数据,点击按钮。

我怎么能做到呢?

我已经尝试运行c++项目解决方案的。exe文件,但这不起作用。

你有很多方法从c#运行c++代码:

<标题> COM h1> 是一种规范的、容易接受的做事方式,但我有一种感觉,对于你的水平来说,这将是令人生畏的。基本上,你将把c++类公开为c++项目中的COM对象(处理COM数据类型之间的转换,比如字符串的_bstr_t等)。然后在你的c#项目中添加这个COM对象作为引用。这给你的c#代码带来了最少的痛苦。

我怀疑这里最大的障碍是你需要了解COM是如何工作的,如果你没有经验,这将是相当令人生畏的。

<标题> c DLL h1> 果不需要调用很多函数,这可能会容易得多。这与从c#调用本地winapi函数的方式相同。您可以从c++ DLL中导出C风格的函数,然后在c#中导入它们。数据类型之间的转换是通过c#中的编组系统完成的。因此,总的来说,这将使c#代码负担更多,而c++代码负担更少。

这里的问题是你不能导出太多c++的东西。例如,您不能导出如下函数:

void myFunction(std::string& s);

因为std::string是一个模板,并且会对内存管理造成严重破坏,并且可能会导致堆损坏。

用c#重写

如果你所做的只是通过套接字发送一些数据,那么就用c#写吧。对于许多事情,c#在开发方面比c++快得多,所以可能值得研究一下这将花费多少精力。