使用本机 C++ 中的 .NET 类 使用 C++/CLI 作为“中间件”;

发布于 2024-07-10 18:41:59 字数 387 浏览 5 评论 0原文

我必须使用来自本机 C++ 应用程序的 C# .NET 中的类/程序集。 我想我需要在 C++/CLI 中创建一个包装类,它将在头文件中公开本机方法,但根据需要使用 .NET 类。 我不清楚的是如何将数据类型从 .NET 转换为标准 C++ 类型。

有人有一些示例代码可以学习吗?

我找到的唯一文字是: http://msdn.microsoft.com/en-us/magazine/cc300632。 aspx

但文本非常旧(使用托管 C++,而不是 C++/CLI),并且很多事情仍不清楚

I have to use a class/assembly made in C# .NET from native C++ application.
I suppose I need to make a wrapper class in C++/CLI, that would expose native methods in header files, but use .NET class as needed.
Thing that's unclear to me is how to convert data types from .NET to standard C++ types.

Does anybody have some sample code to learn from?

Only text I have found on this is:
http://msdn.microsoft.com/en-us/magazine/cc300632.aspx

But text is very old (using Managed C++, not C++/CLI), and lot of things remains unclear

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

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

发布评论

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

评论(1

等待我真够勒 2024-07-17 18:41:59

是的,您需要使用 C++/CLI 围绕托管程序集构建一个包装器。

对于混合本机和托管类型,您可能需要检查这篇文章作为示例
代码。

原始类型有 int、float、byte 为您转换。 但其他类型有String就必须自己做。 例如,如果 char* 上有一个本机指针,则 C++/CLI 类必须将其转换为 String 才能传递到托管 C# 程序集。

Yes you need to build a wrapper with C++/CLI around your managed assembly.

For mixing native and managed types you may want to check this article for sample
codes.

Primitive types has int, float, byte are converted for you. But other types has String must be done yourself. For example, if you have a native pointer on a char*, then your C++/CLI class will have to convert it to a String in order to be passed to your Managed C# assembly.

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