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.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”不能作为非托管结构进行封送处理;无法计算有意义的大小或偏移量。 请问各位大婶是啥意思?
public char[] szMachineType;
这代码错了,那个ByValTStr是用来修饰String类型的,你却用来修饰数组,如果是char[],必须用ByValArray,或者你直接修改为
[MarshalAs(UnmanagedType.ByValTStr,SizeConst=16)]
public string szMachineType;
这代码错了,那个ByValTStr是用来修饰St