Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ cli 导出.NET DLL中的typedef 我在C++/CLI中编写了一个C++ DLL的包装器。在包装纸里面,我做了一些typedef。有没有办法将这些名称导出为.NET类_C++ Cli - Fatal编程技术网

C++ cli 导出.NET DLL中的typedef 我在C++/CLI中编写了一个C++ DLL的包装器。在包装纸里面,我做了一些typedef。有没有办法将这些名称导出为.NET类

C++ cli 导出.NET DLL中的typedef 我在C++/CLI中编写了一个C++ DLL的包装器。在包装纸里面,我做了一些typedef。有没有办法将这些名称导出为.NET类,c++-cli,C++ Cli,背景:typedef的类是一些模板。要使这些模板正常工作,您需要一个托管参数和一个本机参数(这是转换的一部分)。包装器的客户端不可能编程/知道这一点。这就是为什么他需要为模板的使用版本使用不同的别名。我将typedef与从模板派生的一些新类定义进行了交换。这应该行得通。我没有太多信息,但是typedefing应该只对Clr类型起作用。泛型类,可能是,但模板类不能进行类型定义。此外,在本机类型中,只有对.net通用的类型(此处“common”一词可能不正确),即double、int、char、ch

背景:typedef的类是一些模板。要使这些模板正常工作,您需要一个托管参数和一个本机参数(这是转换的一部分)。包装器的客户端不可能编程/知道这一点。这就是为什么他需要为模板的使用版本使用不同的别名。

我将typedef与从模板派生的一些新类定义进行了交换。这应该行得通。

我没有太多信息,但是typedefing应该只对Clr类型起作用。泛型类,可能是,但模板类不能进行类型定义。此外,在本机类型中,只有对.net通用的类型(此处“common”一词可能不正确),即double、int、char、char*(非char*)等。 这段代码有效,并向clr引入了一个“新”类型

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

现在您有了.Net的大小,它的大小取决于平台。

为什么要导出别名?我想您可以使用“using”关键字映射相同的类型以提高可读性。你能提供更多的细节吗?确保你也转发了构造函数。是的,我现在的主要问题是这引入了循环引用。