导出 .NET dll 中的 typedef

发布于 2024-10-28 05:35:07 字数 194 浏览 1 评论 0原文

我用 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 技术交流群。

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

发布评论

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

评论(2

贵在坚持 2024-11-04 05:35:07

我用一些从模板派生的新类定义交换了 typedef。这应该有效。

I exchanged the typedefs with some new class definitions that derive from the template. This should work.

清晰传感 2024-11-04 05:35:07

我没有太多信息,但 typedefing 应该只适用于 Clr 类型。通用类,也许可以,但模板类不能进行类型定义。此外,在本机类型中,仅使用 .net 常见的类型(这里“常见”一词可能不正确。),即 double、int、char、Char*(不是 char*)等。
此代码有效,并向 clr 引入了“新”类型。

namespace example
{
#ifdef _WIN64
  typedef sizeT UInt64
#else 
  typedef sizeT UInt32
#endif
}

现在你有了.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.

namespace example
{
#ifdef _WIN64
  typedef sizeT UInt64
#else 
  typedef sizeT UInt32
#endif
}

Now you have size_t of .Net, whose size depends on platform.

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