使用本机 C++ 中的 .NET 类 使用 C++/CLI 作为“中间件”;
我必须使用来自本机 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的,您需要使用 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.