1.1、wchar_t、char区别

  ANSI:char,可以用strcat()、strcpy()、strlen()等str开头的函数处理char*字符串;

  UNICODE:wchar_t是Unicode字符的数据类型,是我们常说的宽字符;可以用wcscat()、wcscpy()、wcslen(0等wcs开头的函数处理字符串,使用时需要在前面加一个L或者使用_T()。wchar_t的实际定义是:

typedef unsigned short wchar_t;
typedef wchar_t WCHAR;//实际WCHAR与wchar_t是相同的。

  对TCHAR而言,在unicode字符集下,typedef wchar_t TCHAR;  否则是typedef char TCHAR;

  char转换为wchar_t,方法一:使用TEXT();

  方法二:

wchar_t* c2w(const char* str)
{
int length = strlen(str);
wchar_t* wstr = (wchar_t*)malloc(sizeof(wchar_t)*length);
memset(wstr,0,length*sizeof (wchar_t));
MultiByteToWideChar(CP_ACP,0,str,strlen(str),wstr,length);
return wstr;
}

  但是一般情况下程序只会用一种字符集,这种相互转换感觉也没什么意义...?

1.2、 ANSI、Unicode之间的转换

方法一:

  使用MultiByteToWideChar将ANSI字符转换成Unicode字符,使用WideCharToMultiByte将Unicode字符转换成ANSI字符。

方法二:

  使用_T将ANSI转换成一般类型字符串,使用L将ANSI转换成Unicode字符串。

方法三:

  使用ATL的转换宏和类,ATL宏各字符的含义

  ATL3.0   C表示常量,2表示to,EX表示开辟一定大小的缓冲,sourceType和DestinationType可以是A/T/W/OLE,分别表示ANSI/Unicode/一般类型/OLE字符串;

  ATL7.0   为了与ATL3.0区别,第一个C表示类,第二个C表示常量...

比如CA2CT表示将ANSI转换成Unicode字符串常量。

附录:常用的字符串以及指针的类型定义

类型 MBCS bulids Unicode builds
WCHAR wchar_t wchar_t
LPSTR char* char*
LPCSTR const char* const char*
LPWSTR wchar_t* wchar_t*
LPCWSTR wchar_t* wchar_t*
TCHAR char wchar_t
LPTSTR TCHAR* TCHAR*
LPCTSTR const TCHAR* const TCHAR*

最新文章

  1. Android之卫星菜单的实现
  2. Sql Server系列:聚合函数
  3. PHP&MySQL(二)——困也得啃书
  4. Gym 100851G Generators (vector+鸽笼原理)
  5. CentOS系统中常用查看日志命令
  6. new Date参数问题
  7. Fix Windows 7 Msvcp71.dll And Msvcr71.dll Missing Error
  8. 手机无须ROOT不用修改hosts即可在本地测试安卓、苹果APP和H5应用
  9. linux Cron 执行Django 任务计划
  10. 我的第三篇博客(激动激动真激动!!!)A-B Problem
  11. 电话号自动识别之bug解决汇总
  12. vmware workstations下安装CentOS7
  13. [vue]vue双向绑定$on $emit sync-模态框
  14. glide 解决 golang.org/x/net 等依赖包无法获取
  15. 如何在ajax请求中设置特殊的RequestHeader
  16. windows rails new demo时候出错Make sure that `gem install mysql2 -v '0.3.15'` succeeds before bundling.
  17. C#代码处理网页关于登录的code
  18. Django练习
  19. Linux系统——rpm命令
  20. 使用python处理selenium中的css_selector定位元素的模糊匹配问题

热门文章

  1. Unity_UIWidgets - 文字图标Icon
  2. React Refs-知识点整理记录
  3. Nginx实现跨域
  4. 后台管理系统带关闭的选项卡(多标签页)功能 适配bootstrap3和4 Bootstrap Hover Dropdown
  5. P4_创建第一个小程序项目
  6. ctfshow_web入门 命令执行
  7. 图论之最短路径 Floyd算法
  8. 跳板攻击之:CS代理转发
  9. 钓鱼攻击之:Flash 网页钓鱼
  10. day05-mybatis配置文件和SQL映射文件