Uwp 如何在.IDL文件中声明枚举?

Uwp 如何在.IDL文件中声明枚举?,uwp,win-universal-app,midl,c++-winrt,Uwp,Win Universal App,Midl,C++ Winrt,我有一个runtimeclass,我想在其中添加一个枚举。我尝试了MSDN文档中建议的以下语法: 但是,我从MIDL得到以下错误: error MIDL2025: [msg]syntax error [context]: expecting an identifier near ";" 正确的语法是什么?我正在使用windows SDK的版本10.0.17763.0。不能在类型中嵌套枚举。从您链接到的: MIDL 3.0声明中的关键组织概念是名称空间、类型和成员。MIDL 3.0源文件(一个.

我有一个runtimeclass,我想在其中添加一个枚举。我尝试了MSDN文档中建议的以下语法:

但是,我从MIDL得到以下错误:

error MIDL2025: [msg]syntax error [context]: expecting an identifier near ";"

正确的语法是什么?我正在使用windows SDK的版本
10.0.17763.0

不能在类型中嵌套枚举。从您链接到的:

MIDL 3.0声明中的关键组织概念是名称空间、类型和成员。MIDL 3.0源文件(一个
.idl
文件)至少包含一个名称空间,其中包含类型和/或从属名称空间每种类型都包含零个或多个成员。

  • 类、接口、结构和枚举都是类型
  • 字段、方法、属性和事件都是成员的示例。
由于枚举是类型,它们必须出现在命名空间中。您需要将IDL更改为:

namespace my_project
{
    enum my_enum
    {
        first = 0,
        second = 1
    };

    runtimeclass my_rt_class
    {        
    }
}

不能在类型中嵌套枚举。从您链接到的:

MIDL 3.0声明中的关键组织概念是名称空间、类型和成员。MIDL 3.0源文件(一个
.idl
文件)至少包含一个名称空间,其中包含类型和/或从属名称空间每种类型都包含零个或多个成员。

  • 类、接口、结构和枚举都是类型
  • 字段、方法、属性和事件都是成员的示例。
由于枚举是类型,它们必须出现在命名空间中。您需要将IDL更改为:

namespace my_project
{
    enum my_enum
    {
        first = 0,
        second = 1
    };

    runtimeclass my_rt_class
    {        
    }
}