.net - 如何使用 .NET 为 C++ 应用程序创建接口(interface)?

标签 .net c++ user-interface interop

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

我想使用 .NET 创建一个 GUI。是否可以? 谢谢!

最佳答案

有很多选择,这里有一些是我想不到的:

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

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

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

一些更奇特的想法:

  • 使用某种类型的进程间 通信,如套接字。你的 C++ 代码必须在另一个中运行 过程。我想你也可以 将 C++ 代码转换为 Web 服务。

  • 在命令行运行c++代码, 由 .NET GUI 启动。经过 通过命令行参数 参数,捕获并解析 来自 C++ 的标准输出文本 在 .NET 应用程序中重新编程。

编辑: 我会推荐 DLL 和 p/invoke。 COM 对象在传递更复杂的类型和公开对象模型方面优于普通的旧 dll,但创建和安装/注册 COM 对象很痛苦(即使使用 ATL、 list 文件等)。对于很多项目来说,使用 C++/CLI 似乎总是比它的值(value)更复杂 - 但如果其他选项变得过于局限,那么值得学习一下。

关于.net - 如何使用 .NET 为 C++ 应用程序创建接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6003074/

相关文章:

c# - 科学数据可视化和 .NET 框架

c++ - 如何在类中分配多维数组?当行 > 列时会抛出错误?

objective-c - 单元测试 Cocoa 用户界面

JavaFX:我可以访问它包含的节点吗?

.net - IIS .Net HttpModule 高级日志记录字段

c# - 创建一个函数,它给我们另一个函数

c# - AS/400 查询响应时间

python - 吉普错误!堆栈错误 : `C:\Program Files (x86)\MSBuild\12.0\bin\msbuild.exe` failed with exit code: 1

c++ - 不能在 QML 中使用 C++ 类

java - 在 Swing 中创建符号调色板