添加到 C++应用程序 C# GUI

发布于 2024-12-10 20:48:57 字数 112 浏览 0 评论 0 原文

我想将我的 C++ 应用程序添加到 C# .NET GUI 。 我的 C++ 应用程序非常简单,但我有一些 Pointer 和 Reference 。

C# 识别此指针和引用的最佳方式是什么?

I would like to add my C++ application a C# .NET GUI .
My C++ application is very simple but I have a some Pointer and Reference .

What is the Best way C# will recognize this pointer and Reference?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

日久见人心 2024-12-17 20:48:57

有多种方法,这里有一些,这取决于您的品味和您的项目。

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++ 代码。

There are several ways, here are some, and it depends on your taste and on your project.

a) Use COM interop, if your C++ project is written in COM.

b) Use COM interop, you can write COM wrappers to your C++ application and use it from C#.

c) Use C++/CLI, that is, convert your project to become a Managed C++ application and create managed classes in C++ that use your C++ code.
You can also write a managed C++ dll that loads your C++ dll or static library.

d) Use P INVOKE C calls, exports DLL C functions from your C++ code that work with your C++ class, call the C functions from C# using [dllimport] attribute.
You can use type IntPtr and the better and safer SafeHandle to express pointers and references.

All ways have good things and drawbacks, but every listed tehcnique need a "middle layer", you cannot call C++ code directly from C#.

演多会厌 2024-12-17 20:48:57

如果我理解正确的话,您想在基于 C# 的 UI 应用程序中使用用 C++ 程序编写的功能。

您可以通过创建基于 C++/CLI 的 dll 来完成此操作。 C++/CLI 可以轻松调用 C++ 代码,C# 可以轻松调用 C++/CLI 代码。通过这种方式,您可以在基于 C# 的程序中使用用 C++ 编写的功能。

有关所有可能的方法,请参阅 此帖子

If I understand correctly you want to use the functionality written in C++ program in a C# based UI application.

You can do this by creating a C++/CLI based dll. C++/CLI can call C++ code easily and C# can easily call C++/CLI code. In this way you can use functionality written in C++ in a C# based program

For all possible ways see this post

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文