110,538
社区成员
发帖
与我相关
我的任务
分享
public struct SXPSERVER
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst=6)]
public byte [] bNodeaddr;
public uint dwIp;//IP地址
[MarshalAs(UnmanagedType.ByValTStr,SizeConst=16)]
public char[] szMachineType;
}
这是我的结构体SXPSERVER s = new SXPSERVER();
int size = Marshal.SizeOf(s);
会提示SXPSERVER”不能作为非托管结构进行封送处理;无法计算有意义的大小或偏移量。 请问各位大婶是啥意思?[MarshalAs(UnmanagedType.ByValTStr,SizeConst=16)]
public char[] szMachineType;
这代码错了,那个ByValTStr是用来修饰String类型的,你却用来修饰数组,如果是char[],必须用ByValArray,或者你直接修改为
[MarshalAs(UnmanagedType.ByValTStr,SizeConst=16)]
public string szMachineType;
这代码错了,那个ByValTStr是用来修饰St