gpt4 book ai didi

c# - 如何将 C# GUI 添加到 C++ 代码?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:17:01 26 4
gpt4 key购买 nike

我编写了 C++ 代码,其中包含一些库并定义了一些函数以及 main.我正在尝试在 C# 中向此代码添加 GUI。

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

我该怎么做?

我试过运行c++项目解决方案的.exe文件,但是不行。

最佳答案

您有很多方法可以从 C# 运行 C++ 代码:

COM

这是做事的规范、好方法,但我感觉这在您的水平上会令人望而生畏。基本上,您会将 C++ 类公开为 C++ 项目中的 COM 对象(处理 COM 数据类型之间的转换,例如 _bstr_t 用于字符串等)。然后将此 COM 对象添加为 C# 项目中的引用。这对您的 C# 代码造成的痛苦最小。

我怀疑这里最大的障碍是您需要了解 COM 的工作原理,如果您还没有这方面的经验,这将是非常艰巨的。

类C DLL

如果您不需要调用很多函数,这可能会容易得多。这与从 C# 调用 native winapi 函数的方式相同。您从 C++ DLL 中导出 C 风格的函数,然后在 C# 中导入它们。数据类型之间的转换是通过 C# 中的编码系统完成的。所以一般来说,这将更多的负担放在 C# 代码上,而不是 C++ 代码。

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

void myFunction(std::string& s);

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

用C#重写

如果您所做的只是通过套接字发送一些数据,那么只需用 C# 编写即可。对于许多事情,C# 的开发速度比 C++ 快得多,因此可能值得研究这需要付出多少努力。

关于c# - 如何将 C# GUI 添加到 C++ 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32157720/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com