我有一个运行时类,我想向其中添加一个枚举。我尝试了MSDN文档在此处建议的以下语法:https://docs.microsoft.com/en-ca/uwp/midl-3/intro
left
但是我从MIDL中收到以下错误:
namespace my_project
{
runtimeclass my_rt_class
{
enum my_enum
{
first = 0,
second = 1
};
}
}
正确的语法是什么?我正在使用Windows SDK的error MIDL2025: [msg]syntax error [context]: expecting an identifier near ";"
版。
答案 0 :(得分:4)
您不能在类型中嵌套枚举。您从documentation链接到:
MIDL 3.0声明中的关键组织概念是名称空间,类型和成员。 MIDL 3.0源文件(
.idl
文件)包含至少一个名称空间,其中包含类型和/或从属名称空间。 每种类型包含零个或多个成员。
- 类,接口,结构和枚举是类型。
- 字段,方法,属性和事件是成员的示例。
由于枚举是类型,因此它们必须出现在名称空间中。您需要将IDL更改为此:
namespace my_project
{
enum my_enum
{
first = 0,
second = 1
};
runtimeclass my_rt_class
{
}
}