_DATA_DIRECTORY[] DataDirectory = new IMAGE_DATA_DIRECTORY[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; } 则得到一个 CS0573 错误: 以下为引用: error CS0573: “IMAGE_OPTIONAL_HEADER.DataDirectory” : 结构中不能有实例字段初始值设定项 因为结构内是不能够有引用类型的初始化的,这与 class 的初始化工作不同。如此一来只能将数组的初始化放到构造函数中,而且结构还不能有无参数的缺省构造函数,真是麻烦,呵呵 以下内容为程序代码: public struct IMAGE_OPTIONAL_HEADER { public const int IMAGE_NUMBEROF_DIRECTORY_ENTRIES = 16; public ushort Magic; public uint NumberOfRvaAndSizes; public IMAGE_DATA_DIRECTORY[] DataDirectory; public IMAGE_OPTIONAL_HEADER(IntPtr ptr) { Magic = 0; NumberOfRvaAndSizes = 0; DataDirectory = new IMAGE_DATA_DIRECTORY[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; } } 页码:[1] [2] [3] [4] [5] [6] [7] [8] 第3页、共8页 |