编译器错误 C3451
更新:2007 年 11 月
错误消息
“attribute”: 不能将非托管属性应用于“type”
不能将 C++ 属性应用于 CLR 类型。有关更多信息,请参见 C++ Attributes Reference。
有关更多信息,请参见 User-Defined Attributes。
为 Visual C++ 2005 完成的编译器一致性工作可导致产生此错误:使用 CLR 编程的用户定义的属性上不再允许有 uuid (C++ Attributes)属性。而应使用 GuidAttribute。
有关更多信息,请参见 Visual C++ 2005 编译器中的重大更改。
示例
下面的示例生成 C3451。
// C3451.cpp
// compile with: /clr /c
using namespace System;
[ attribute(AttributeTargets::All) ]
public ref struct MyAttr {};
[ MyAttr, helpstring("test") ] // C3451
// try the following line instead
// [ MyAttr ]
public ref struct ABC {};