dll 联合体 报错 。它在 8 偏移位置处包含一个对象字段,该字段已由一个非对象字段不正确地对齐。
c++原型
typedef struct Tag_Report{
union{
RoReport tRoReport;
EventReport tEventReport;
}report;
unsigned int nResType;
}Report;
我转为c#如下
[StructLayoutAttribute(LayoutKind.Sequential)]
public struct Report
{
public report report;
public uint nResType;
}
[StructLayoutAttribute(LayoutKind.Explicit)]
public struct report
{
[FieldOffsetAttribute(0)]
RoReport tRoReport;
[FieldOffsetAttribute(0)]
EventReport tEventReport;
}
编译没错,运行时报出:
未能从程序集“EPC, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”中加载类型“report”,因为它在 8 偏移位置处包含一个对象字段,该字段已由一个非对象字段不正确地对齐或重叠。
有没有人会啊,各位大神们,指点指点