zoukankan      html  css  js  c++  java
  • wchar_t 和 char 编程问题

      windows 编程遇见最多问题莫过于这俩字符编码格式了。 有时候工程中用unicode 编码。而调用一些老版本的库 这些库采用多字符编码。在用时需要使用到WideCharToMultiByte 函数进行转换。 一次我在合别人代码到工程中时候看到广泛采用"char"形式的字符串,然后在较高版本的vs 中工程基本都是 unicode 编码。

    1> 一种方法是 把原先代码编译成库函数直接调用  改动少;

    2> 另一种方法是更改源代码系统调用函数为多字符 微软一般系统调用有两种形式,采用宏定义在不同平台使用系统调用;

         FuctionNameA(...)

       FuctionNameW(...)

      #ifdef  _UNICODE

        #define  FuctionName  FuctionNameW  

      #else

       #define  FuctionName  FuctionNameA  

      #endif   

      所以只能显示的更改函数FuctionName  =》 FuctionNameA 完成转化。

    3> 使用TCHAR类型  头文件<tchar.h>。

    #ifdef  _UNICODE

        #define  TCHAR  wchar_t  

        #define _T (x )     L ## x   

            ...

    #else

       #define  TCHAR  char

       #define _T (x )  x  

            ...

    #endif 

        ... 为相应字符集操作函数宏定义 所有函数在博客http://blog.sina.com.cn/s/blog_4e3c6b480100r5go.html 中可以查阅。

    更改后以后在windows 编程无论ascall 还是unicode 都可以拿出来直接使用方便。

    总结:使用windows api 编程最好规范,要不一改再改浪费时间。windows编程建议使用TCHAR

      

        

          

  • 相关阅读:
    flume,kafka不在一个内网互相打通.md
    尚硅谷Flink2020教程.md
    常用命令.md
    四象限工作效率-事件管理.md
    甘特图目标实施-进度管控.md
    PDCA循环法.md
    SMART大目标拆解小目标.md
    基于内外部竞争环境和竞争条件下的态势分析
    使用Java正则表达式批量提取文本信息
    使用markdown高效编写博客(创建标题)
  • 原文地址:https://www.cnblogs.com/wolfrickwang/p/3200918.html
Copyright © 2011-2022 走看看