public struct NET_DVR_PLAYCOND
{
public uint dwChannel;
public NET_DVR_TIME struStartTime;
public NET_DVR_TIME struStopTime;
public byte byDrawFrame; //0:不抽帧,1:抽帧
[MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 63, ArraySubType = UnmanagedType.I1)]
public byte[] byRes; //保留
}
{
public uint dwChannel;
public NET_DVR_TIME struStartTime;
public NET_DVR_TIME struStopTime;
public byte byDrawFrame; //0:不抽帧,1:抽帧
[MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 63, ArraySubType = UnmanagedType.I1)]
public byte[] byRes; //保留
}
NET_DVR_PLAYCOND = record
dwChannel: DWORD;
struStartTime: NET_DVR_TIME;
struStopTime: NET_DVR_TIME;
byDrawFrame: byte;
byRes: array of byte;
end;
至于[MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 63, ArraySubType = UnmanagedType.I1)],这个东西Delphi新版本才有自定义Attribute的,你需要看你.net中的这个对应是什么功能,然后再Delphi根据相应的功能做属性定义,然后类似声明就行,另外不知道NET_DVR_TIME是啥结构,自己对应定义,实际上转换代码这种东西,没啥太大的讲究,搞明白数据类型的对应就行了