如何将c# GUI添加到c++代码中
How can I add a C# GUI to C++ code?
我编写了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++我的数学有什么问题,为什么我的代码不能正确循环
- 代码在main()中运行,但在函数中出现错误
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 编译包含字符串的代码时遇到问题
- 我在c++代码中生成了一个运行时#3异常
- 如何在linux终端中同时编译和运行c++代码
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 在Linux for Windows上编译C++代码时出错
- 我的字符计数代码计算错误.为什么
- 孤立代码块在结构中引发异常
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 此代码是否违反一个定义规则
- 为什么我的代码在输出中增加了93天
- 我的简单if-else语句是如何无法访问的代码
- 使用动态分配的数组会导致代码分析发出虚假的C6386缓冲区溢出警告
- 为什么在这个代码结束循环中没有得到结束
- 在c代码之间共享数据的最佳方式
- 这个指针和内存代码打印是什么?我不知道是打印垃圾还是如何打印我需要的值