zoukankan      html  css  js  c++  java
  • C#与C++(结构体内对象指定大小)


    C++结构体:
    struct DATAAREA { // 报警协议数据区结构
    char szAlarmNo[20]; // 报警编号(必填)
    char szUserNo[10]; // 用户编号(必填)
    char szUserName[100]; // 用户名称(必填)
    char szUserAddr[100]; // 用户地址(必填)
    char szUserType[10]; // 用户类型
    char szPrincipal[20]; // 负责人(必填)
    char szPrincipalPhone[18]; // 负责人电话(必填)
    char szPrincipalFamilyPhone[18]; // 负责人宅机(必填)
    char szPrincipalMobilePhone[18]; // 负责人手机
    char szPrincipalCall[18]; // 负责人呼机
    char szIntersectRoad[100]; // 交叉路(交叉路如果是两条路,则在两条路之间加上分隔符‘@’,如:枫林路@小木桥路)
    char szPoliceSubstation[100]; // 派出所名称
    char szPoliceSubStationPhone[18]; // 派出所电话
    char szFstLinkman[20]; // 第一安保联系人
    char szFstLinkmanPhone[18]; // 第一安保联系人手机
    char szFstLinkmanCall[18]; // 第一安保联系人呼机
    char szAlarmTime[20]; // 报警时间(YYYY-MM-DD hh:mm:ss)
    char szDefAreaType[10]; // 防区类型
    char szDefAreaNo[10]; // 防区编号
    char szDefAreaInfo[100]; // 防区名称与位置
    char szAlarmRevID[10]; // 接警员工号
    char szAlarmRevName[20]; // 接警员姓名
    char szAlarmDutyRoomPhone[18]; // 报警点值班室电话
    } dataArea;

    对应C#结构体:
    /// <summary>
    /// 报警协议数据区结构
    /// </summary>
    public struct DataAreaForAlarmAsk
    {
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
    public char[] szAlarmNo;// 报警编号(必填)
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)]
    public char[] szUserNo;// 用户编号(必填)
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 100)]
    public char[] szUserName;// 用户名称(必填)
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 100)]
    public char[] szUserAddr; // 用户地址(必填)
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)]
    public char[] szUserType; // 用户类型
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
    public char[] szPrincipal; // 负责人(必填)
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 18)]
    public char[] szPrincipalPhone; // 负责人电话(必填)
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 18)]
    public char[] szPrincipalFamilyPhone; // 负责人宅机(必填)
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 18)]
    public char[] szPrincipalMobilePhone; // 负责人手机
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 18)]
    public char[] szPrincipalCall ; // 负责人呼机
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 100)]
    public char[] szIntersectRoad; // 交叉路(交叉路如果是两条路,则在两条路之间加上分隔符‘@’,如:枫林路@小木桥路)
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 100)]
    public char[] szPoliceSubstation; // 派出所名称
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 18)]
    public char[] szPoliceSubStationPhone; // 派出所电话
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
    public char[] szFstLinkman; // 第一安保联系人
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 18)]
    public char[] szFstLinkmanPhone; // 第一安保联系人手机
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 18)]
    public char[] szFstLinkmanCall; // 第一安保联系人呼机
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
    public char[] szAlarmTime ; // 报警时间(YYYY-MM-DD hh:mm:ss)
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)]
    public char[] szDefAreaType ; // 防区类型
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)]
    public char[] szDefAreaNo ; // 防区编号
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 100)]
    public char[] szDefAreaInfo ; // 防区名称与位置
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)]
    public char[] szAlarmRevID ; // 接警员工号
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
    public char[] szAlarmRevName ; // 接警员姓名
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 18)]
    public char[] szAlarmDutyRoomPhone ; // 报警点值班室电话
    }

  • 相关阅读:
    【Golang 接口自动化08】使用标准库httptest完成HTTP请求的Mock测试
    【Golang 接口自动化07】struct转map的三种方式
    【Golang 接口自动化06】微信支付md5签名计算及其优化
    【Golang 接口自动化05】使用yml管理自动化用例
    【Golang 接口自动化04】 解析接口返回JSON串
    【Mac】小技巧:实现ssh服务器别名免密登录
    【Golang】幽灵变量(变量覆盖)问题的一劳永逸解决方法
    【Golang】字符串首字母大小写转化
    【Python】给图片添加水印的Python及Golang实现
    sequelize处理日期格式化
  • 原文地址:https://www.cnblogs.com/Robert-huge/p/5501239.html
Copyright © 2011-2022 走看看