大坡3D软件开发

关注3D软件技术

用户操作
[即时聊天] [发私信] [加为好友]
蔡军生ID:caimouse
1237779次访问,排名17好友253人,关注者413
C++,3D,VC++软件开发,写技术文章,操作系统开发
caimouse的文章
原创 603 篇
翻译 0 篇
转载 41 篇
评论 940 篇
蔡军生的公告

点击这里给我发消息

MSN: caimouse1976 at sina.com

最近评论
maray:这个做量的生意还是不错哈~
雇几个C++比较好的大学生做兼职,负责回答问题,哈哈~very nice~
xavierye:发现另外一个源码分析blog:
http://www.cnblogs.com/duguguiyu/archive/2008/10/02/1303095.html
shada:前面两个混帐,没资格评论开源。
用着盗版的Word写文章批评开源的人真不少。
shada:前面两个混帐,没资格评论开源。
用着盗版的Word写文章批评开源的人大有人在。
andylrj:Google的浏览器真差劲!!!体验一把真心说出,要做的事还很多,终于明白微软的IE为什么要做这么庞大了,做小确实不行!
文章分类
收藏
相册
3D引擎
第二人生
谷歌浏览器
开发板
历史回忆
常用连接
人生历程
存档
软件项目交易
订阅我的博客
XML聚合  FeedSky

原创 Windows API一日一练(80)MultiByteToWideChar函数收藏

新一篇: Windows API一日一练(81)FormatMessage函数 | 旧一篇: Windows API一日一练(79)GlobalMemoryStatusEx函数

在软件的使用过程中,经常碰到乱码的情况,那么乱码的原因是什么呢?其实很多情况下,就是字符集的不同,也就是说同一个数字代表不同意思。在Windows里,目前主要有ANSIUNICODE的方式。如果在UNICODE的方式里直接显示ANSI的字符串是出现乱码的,同样在ANSI函数里也不能显示UNICODE的字符串,而是要进行相互转换才能显示正确的字符串。在NT以后的操作系统里,Windows底层函数已经全部改为UNICODE的方式,如果还是使用ANSI的话,要比UNICODE函数慢一些,系统底层会从ANSI的方式转换为UNICODE方式,然后再显示出来。从ANSI转换为UNICODE的字符串,就可以使用函数MultiByteToWideChar来实现。
 
函数MultiByteToWideChar声明如下:
 
WINBASEAPI
int
WINAPI
MultiByteToWideChar(
    __in UINT     CodePage,
    __in DWORD    dwFlags,
    __in LPCSTR   lpMultiByteStr,
    __in int      cbMultiByte,
    __out_ecount_opt(cchWideChar) LPWSTR lpWideCharStr,
    __in int      cchWideChar);
CodePage是代码表。
dwFlags是转换标志。
lpMultiByteStr是输入ANSI字符串。
cbMultiByte是输入ANSI的字符串长度。
lpWideCharStr是输出UNICODE字符串。
cchWideChar是输出UNICODE字符串的缓冲区大小。
 
调用函数的例子如下:
#001 //
#002  //字符串转换。
#003  //蔡军生 2007/11/28 QQ:9073204 深圳
#004  void MultiToWide(void)
#005  {
#006         //ANSI的字符串。
#007         std::string strANSI("测试字符串转换\r\n");
#008 
#009         //
#010         const int nBufSize = 512;
#011         TCHAR chBuf[nBufSize];
#012         ZeroMemory(chBuf,nBufSize);
#013 
#014         //转换为UNICODE的字符串。
#015        if (MultiByteToWideChar(CP_ACP,0,strANSI.c_str(),strANSI.length(),
#016              chBuf,nBufSize) > 0)
#017         {
#018               //
#019               OutputDebugString(chBuf);
#020         }
#021 
#022  }
 

发表于 @ 2007年11月29日 18:59:00|评论(loading...)|编辑

新一篇: Windows API一日一练(81)FormatMessage函数 | 旧一篇: Windows API一日一练(79)GlobalMemoryStatusEx函数

评论

#kahn178 发表于2007-11-30 19:08:10  IP: 121.35.131.*
好东西,不过有点不是很明白的是,这个用在什么地方啊,如果只是知道,而不能用,却是一种悲哀啊???请指教!!!
2007-11-30 23:37:25作者回复
就是用来把ANSI的字符串转换为UNICODE的字符串。
发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © 蔡军生