繁体   English   中英

如何使用.NET for C ++应用程序创建接口?

[英]How to create an interface using .NET for C++ application?

我已经用C ++编写了应用程序的所有代码。 它是使用Visual Studio 2010编写的标准C ++。

我想用.NET创建一个GUI。 可能吗? 谢谢!

是的,这就是Expression Studio的工作原理,这是WPF的GUI编辑工具。 您可以使用类似的方法,并通过P / Invoke将所有功能公开给GUI中的GUI应用程序。

只需保持UI尽可能薄。 此外,如果您发现自己在C ++和C#应用程序之间有大量的联系点,那么您将需要考虑使用C ++ / CLI作为它们之间的粘合层。 C ++ / CLI并不是编写整个UI的最佳编程语言,但它可以作为C#前端和C ++后端之间非常好的中间层。

有很多选择,这里有一些我的头脑:

  • 将c ++代码包装在Windows DLL中,使用p / invoke从.NET调用c ++代码。

  • 将c ++代码包装在com对象中,.NET可以直接使用com对象。

  • 将c ++代码包含在某种类型的托管c ++包装器(c ++ / CLI)中,在.NET GUI中加载并使用该新程序集。

一些更奇特的想法:

  • 使用某种类型的进程间通信,如套接字。 您的c ++代码必须在另一个进程中运行。 我想你也可以把c ++代码变成一个web服务。

  • 在.NET GUI启动的命令行上运行c ++代码。 通过命令行参数传递参数,在.NET应用程序中捕获并解析c ++程序中的标准输出文本。

编辑:我建议使用DLL和p / invoke。 COM对象比普通的dll更有利于传递更复杂的类型并暴露对象模型,但COM对象很难创建和安装/注册(甚至包括ATL,清单文件等)。 对于许多项目来说,使用C ++ / CLI似乎总是比它的价值更复杂 - 但如果其他选项变得过于局限,那么值得学习一下。

您可以使用互操作来与非托管代码进行通信,并使用托管代码编写GUI,但一般来说,它不是一个很好的开发人员体验。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM