1
2
只要把你的
编辑:布伦特建议的一个变化是使用
|
2
10
即使你在你的本机C++中包含了C~*EnEnm(如你所建议的那样) first link 两个枚举都不是“相同的”,c++eNUM只是一个命名整数的列表,而C ^枚举是从枚举中派生出来的。因此,当试图同时使用它们时,会在C++/CLI中发生冲突。 一种可能的解决方案是使用预处理器,以便您的C++ /CLI程序集在不同的命名空间中看到两个枚举:
在C++/CLI代码中,做一个这样的包含:
这使您可以区分这两种枚举
编辑:刚刚找到 this SO post 显示了在非托管枚举和托管枚举之间进行强制转换的正确方法,这在这里肯定也会起作用。例如,在C++/CLI中,从托管到非托管枚举的转换可以这样做:
|
3
3
考虑编写代码生成器程序,用枚举读取本地H文件文件,生成另一个H文件,将枚举转换为C++/CLI枚举类。这样的代码生成器可以在自定义生成步骤的C++/CLI项目中使用,生成所需的CLI枚举。 我使用这种方法来生成本地包装器类以获得EnUM::GETNAMS和EnUM::GETNEX函数在非托管C++中。 |
Robert King · Unity C#语法问题-转换位置 1 年前 |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
i_sniff_ket · 在unity之外使用unity类 2 年前 |