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

      

        

          

  • 相关阅读:
    *** FATAL ERROR L250: CODE SIZE LIMIT IN RESTRICTED VERSION EXCEEDED
    *** FATAL ERROR L250: CODE SIZE LIMIT IN RESTRICTED VERSION EXCEEDED
    nRF24L01无线介绍
    关于使用墙外安卓应用
    jquery miniui , 普加甘特图,流程管理
    数据库测试DbUnit
    如何写BaseDomain
    js 字符串转 数字
    Http协议中 常用的参数应用
    spring 管理 jdbc 事务
  • 原文地址:https://www.cnblogs.com/wolfrickwang/p/3200918.html
Copyright © 2011-2022 走看看