zoukankan      html  css  js  c++  java
  • c# 存取结构体 二进制文件 中文乱码

    对于C#结构体包含中文和c程序交互时乱码的问题,应该在C#的结构体定义时指定字符集

    代码
     //
            
    // 摘要:
            
    //     用于在结构中出现的内联定长字符数组。与 System.Runtime.InteropServices.UnmanagedType.ByValTStr
            
    //     一起使用的字符类型由应用于包含结构的 System.Runtime.InteropServices.StructLayoutAttribute 的
            
    //     System.Runtime.InteropServices.CharSet 参数确定。
            
    //     应始终使用 System.Runtime.InteropServices.MarshalAsAttribute.SizeConst
            
    //     字段来指示数组的大小。

            [StructLayout(LayoutKind.Sequential,CharSet
    =CharSet.Unicode), Serializable]
            
    public struct MY_STRUCT
            {
                
    public double x;          //点的经度坐标
                public double y;          //点的纬度坐标
                [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]
                
    public string Name;        //Name[40]; //名称

                
    public int PointID;  //点的ID号
                public int TypeCode; //客户不使用该字段
            }


  • 相关阅读:
    [IDEA]高级用法
    [TongEsb]Windows入门教程
    [MAC] JDK版本切换
    [下划线]换行自适应稿纸完美方案
    [IDEA] Jrebel热部署环境搭建Mac
    Python规范:用用assert
    Python规范:提高可读性
    Python规范:代码规范要注意
    计算机网络自顶向下方法--计算机网络中的安全.2
    Python进阶:程序界的垃圾分类回收
  • 原文地址:https://www.cnblogs.com/baishahe/p/1689860.html
Copyright © 2011-2022 走看看