1

我有一个运行时类,我想添加一个枚举。我已经按照 MSDN 文档的建议尝试了以下语法:https ://docs.microsoft.com/en-ca/uwp/midl-3/intro

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

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

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

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

4

1 回答 1

5

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

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

  • 类、接口、结构和枚举都是类型。
  • 字段、方法、属性和事件是成员的示例。

由于枚举是类型,它们必须出现在命名空间中。您需要将 IDL 更改为:

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

    runtimeclass my_rt_class
    {        
    }
}
于 2018-11-03T13:29:57.853 回答