编译器警告(等级 1)C4912

“attribute”:在嵌套 UDT 上,属性有未定义的行为

可以忽略应用于嵌套 UDT(用户定义的类型,这可能为 typedef、union 或 struct)的特性。

下面的代码演示了将如何生成此警告:

// C4912.cpp
// compile with: /W1
#include <windows.h>
[emitidl, module(name="xx")];

[object, uuid("00000000-0000-0000-0000-000000000002")]
__interface IMy
{
};

[coclass, default(IMy), appobject, uuid("00000000-0000-0000-0000-000000000001")]
class CMy : public IMy
{
   [export, v1_enum] typedef enum myEnum { k3_1 = 1, k3_2 = 2 } myEnumv;   // C4912
};
int main()
{
}