FieldOffsetAttribute我有一个使用属性StructLayout attribte CLR类:事件声明和使用
[StructLayout(LayoutKind::Explicit)]
public ref class Matrix4 : System::ComponentModel::INotifyPropertyChanged
所有字段利用FieldOffset属性。现在我需要添加事件,特别是我想implment INotifyPropertyChanged接口,因此我需要的
[FieldOffset(16*sizeof(Real))]
virtual event System::ComponentModel::PropertyChangedEventHandler^ PropertyChanged;
事件。编译器告诉我,我需要的FieldOffset属性分配给该事件,但这样做,编译器会引发错误消息后:
Error 34 error C1093: API call 'DefineCustomAttribute' failed '0x801311c0'
不准我到恰克StructLayout序贯那么,如何解决这个问题呢?
任何帮助,将不胜感激,
最佳,apo。
protected:
[field:FieldOffset(16*sizeof(Real))]
System::ComponentModel::PropertyChangedEventHandler^ _pc;
public:
virtual event System::ComponentModel::PropertyChangedEventHandler^ PropertyChanged
{
void add(System::ComponentModel::PropertyChangedEventHandler^ p)
{
_pc += p;
}
void remove(System::ComponentModel::PropertyChangedEventHandler^ p)
{
_pc -= p;
}
void raise(Object ^sender, System::ComponentModel::PropertyChangedEventArgs^args)
{
_pc->Invoke(sender, args);
}
};
void OnPropertyChanged(String^ info)
{
PropertyChanged(this, gcnew System::ComponentModel::PropertyChangedEventArgs(info));
}