|
发表于 2019-3-13 09:51:10
|
显示全部楼层
能力有限,只能写成这样了,不知道能不能用。
CRITICAL_SECTION 贴出来,没法写。
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct A
{
public Byte DataLen;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
public byte[] Data;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
public byte[] Reserved;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
struct B
{
[MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 200, ArraySubType = UnmanagedType.Struct)]
public A[] usA;
[MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 200, ArraySubType = UnmanagedType.Struct)]
public A[] usB;
public ushort usTxWrite;
public UInt16 usTxRead;
public UInt16 usRxWrite;
public UInt16 usRxRead;
IntPtr usSend;
IntPtr usReceived;
public CRITICAL_SECTION usCs;
public delegate void callback();
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct CRITICAL_SECTION
{
} |
|