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; //客户不使用该字段
            }


  • 相关阅读:
    Activex打包于发布完整版---ActiveX打包
    同步和异步的区别
    QoS的构建模块与机制
    GLSL语言内置的变量详解
    jquery中的DOM操作
    varchar和Nvarchar区别
    使用SqlServer中的float类型时发现的问题
    SQL2005,错误 0xc00470fe 数据流任务 产品级别对于 组件“源
    SQL SERVER SQLOS的任务调度
    隐式事务(转)
  • 原文地址:https://www.cnblogs.com/baishahe/p/1689860.html
Copyright © 2011-2022 走看看