struct{
DWORD dwSize;
BYTE byStreamMode;
BYTE byRes1[3];
NET_DVR_DEC_STREAM_MODE uDecStreamMode;
BYTE byRes2[64];
}NET_DVR_PU_STREAM_CFG_V41,*LPNET_DVR_PU_STREAM_CFG_V41;union{
NET_DVR_DEC_STREAM_DEV_EX struDecStreamDev;
NET_DVR_PU_STREAM_URL struUrlInfo;
NET_DVR_DEC_DDNS_DEV struDdnsDecInfo;
BYTE byRes[300];
}NET_DVR_DEC_STREAM_MODE,*LPNET_DVR_DEC_STREAM_MODE;struct{
NET_DVR_STREAM_MEDIA_SERVER struStreamMediaSvrCfg;
NET_DVR_DEV_CHAN_INFO_EX struDevChanInfo;
}NET_DVR_DEC_STREAM_DEV_EX,*LPNET_DVR_DEC_STREAM_DEV_EX;根据网上资料写的c#对应的 [StructLayout(LayoutKind.Sequential)]
public struct NET_DVR_PU_STREAM_CFG_V41
{
public uint dwSize;
public byte byStreamMode; [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3, ArraySubType = UnmanagedType.I1)]
public byte[] byRes1;
public NET_DVR_DEC_STREAM_MODE uDecStreamMode; [MarshalAs(UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = UnmanagedType.I1)]
public byte[] byRes2; public void Init()
{
byRes1=new byte[3];
byRes2=new byte[64];
}
} [StructLayout(LayoutKind.Explicit,Size = 300)]
public struct NET_DVR_DEC_STREAM_MODE
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 300, ArraySubType = UnmanagedType.I1)]
[FieldOffsetAttribute(0)]
public byte[] byRes;
} [StructLayout(LayoutKind.Sequential)]
public struct NET_DVR_DEC_STREAM_DEV_EX
{
public NET_DVR_STREAM_MEDIA_SERVER struStreamMediaSvrCfg; public NET_DVR_DEV_CHAN_INFO_EX struDevChanInfo;
}现在对NET_DVR_DEC_STREAM_DEV_EX中struDevChanInfo赋值后,准备进行StructToBytes转换为byte时程序挂掉(还未进入StructToBytes)。是不是我结构体有问题??
解决方案 »
- unable to cast object of type‘System.DBNull’to type‘System.String’
- datagirdview的更新问题
- 关于c#的window程序中的水晶报表
- 对一张图片的某点(例如点(10,10))的色值,为了精确,我将图片放大16倍后再取值,此时该点是不是对应点(160,160)
- 用mscomm读数据,为什么第一和第二个端口就可以读出来,第三个就不行呢?
- lable如何在picturebox里的图片的居中位置显示
- [请问]如何设置GridControl里的View的某一列为不可编辑列?
- 如何根据字符串的内容去实例化一个类?
- C#能否象delhpi一样自动完成语句块结构?
- Help!!!!disc4安装问题!
- 关于继承自List<T>的属性封装
- 如何实现QQ评论功能,以及回复再回复的功能
StructLayout特性支持三种附加字段:
CharSet、Pack、Size。
某一项对不上都会导致DllImport失败
倒是vb用起来自己转好多东西.....