我如何编组这个C++类型?
ABS_DATA结构用于将任意长的数据块与长度信息相关联.声明的Data
数组长度为1,但实际长度由Length
成员给出.
typedef struct abs_data {
ABS_DWORD Length;
ABS_BYTE Data[ABS_VARLEN];
} ABS_DATA;
Run Code Online (Sandbox Code Playgroud)
我尝试了以下代码,但它不起作用.数据变量总是空的,我确信它有数据.
[System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential, CharSet = System.Runtime.InteropServices.CharSet.Ansi)]
public struct abs_data
{
/// ABS_DWORD->unsigned int
public uint Length;
/// ABS_BYTE[1]
[System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValTStr, SizeConst = 1)]
public string Data;
}
Run Code Online (Sandbox Code Playgroud) 我如何定义一个具有动态大小数组的结构?
这样对吗?
struct MyStruc {
public int len;
[MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)]
public int buf[];
}
Run Code Online (Sandbox Code Playgroud)