我在 C++/CX 类中有一个公共(public)函数:
using Windows::Foundation
Collections::IVectorView<IType^>^ F(Point p);
另外,我在纯原生类中有一个枚举:
namespace N
{
enum E
{
kA, kB, kC
};
}
我想创建一个也接受 E 的 F 重载:
Collections::IVectorView<IType^>^ F(Point p, N::E e);
当然,在公共(public)函数的签名中包含 native 类型是错误的。有什么方法可以将此枚举公开给我的托管调用者吗?
最佳答案
正如其他人指出的那样,解决方案是将枚举 E 声明为“公共(public)枚举类 E”。在大多数情况下,这可以被视为(并且与 native C++ 枚举一样有效),但它在 ABI 级别也是可见的和发布的,并且可由其他 WinRT 调用方调用和使用。这将被适本地投影到其他 WinRT 语言中(例如,它将被视为 C# 中的枚举)。
关于c++ - 在 C++/CX 中使用 native 枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21491010/