【发布时间】:2011-12-10 06:57:18
【问题描述】:
我想为我的 C++ 应用程序添加一个 C# .NET GUI 。 我的 C++ 应用程序非常简单,但我有一些指针和引用。
C# 识别此指针和引用的最佳方式是什么?
【问题讨论】:
标签: c# c++ user-interface
我想为我的 C++ 应用程序添加一个 C# .NET GUI 。 我的 C++ 应用程序非常简单,但我有一些指针和引用。
C# 识别此指针和引用的最佳方式是什么?
【问题讨论】:
标签: c# c++ user-interface
有几种方法,这里有一些,这取决于你的品味和你的项目。
a) 如果您的 C++ 项目是用 COM 编写的,请使用 COM 互操作。
b) 使用 COM 互操作,您可以将 COM 包装器写入您的 C++ 应用程序并从 C# 中使用它。
c) 使用 C++/CLI,即将项目转换为托管 C++ 应用程序,并在 C++ 中创建使用 C++ 代码的托管类。 您还可以编写一个托管的 C++ dll 来加载您的 C++ dll 或静态库。
d) 使用 P INVOKE C 调用,从与 C++ 类一起使用的 C++ 代码中导出 DLL C 函数,使用 [dllimport] 属性从 C# 调用 C 函数。 您可以使用 IntPtr 类型和更好更安全的 SafeHandle 来表达指针和引用。
所有方法都有优点和缺点,但每个列出的技术都需要一个“中间层”,你不能直接从 C# 调用 C++ 代码。
【讨论】:
如果我理解正确,您想在基于 C# 的 UI 应用程序中使用用 C++ 程序编写的功能。
您可以通过创建基于 C++/CLI 的 dll 来做到这一点。 C++/CLI 可以轻松调用 C++ 代码,C# 可以轻松调用 C++/CLI 代码。通过这种方式,您可以在基于 C# 的程序中使用用 C++ 编写的功能
有关所有可能的方式,请参阅this 帖子
【讨论】: