导出 .NET dll 中的 typedef
我用 C++/CLI 编写了 C++ dll 的包装器。在包装器内部,我做了一些 typedef。有没有办法将这些名称导出为 .NET 类?
背景:typedef 类是一些模板。为了使这些模板正常工作,您需要一个托管参数和一个本机参数(这是翻译的一部分)。包装器的客户端不可能编程/知道这一点。这就是为什么他需要为所使用的模板版本使用不同的别名。
I've written a wrapper for a C++ dll in C++/CLI. Inside the wrapper, I made some typedefs. Is there a way to export these names as .NET classes?
Background: the typedef'd classes are some templates. For these templates to work, you need a managed and a native parameter (this is part of the translation). This is impossible for the client of the wrapper to program / know. That's why he needs the different aliases for the used versions of the template.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我用一些从模板派生的新类定义交换了 typedef。这应该有效。
I exchanged the typedefs with some new class definitions that derive from the template. This should work.
我没有太多信息,但 typedefing 应该只适用于 Clr 类型。通用类,也许可以,但模板类不能进行类型定义。此外,在本机类型中,仅使用 .net 常见的类型(这里“常见”一词可能不正确。),即 double、int、char、Char*(不是 char*)等。
此代码有效,并向 clr 引入了“新”类型。
现在你有了.Net的size_t,它的大小取决于平台。
I do not have too much information but typedefing should work only on Clr types. Generic classes, maybe but template classes can not ne typedefed. Also among native types, only the ones that are common (the word "common" may not be correct here.) to .net i.e. double, int, char, Char* (not char*) etc.
This code works and introduces a "new" type to clr.
Now you have size_t of .Net, whose size depends on platform.