- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MultiByeToWideChar和WideCharToMultiByte用法详解
MultiByteToWideChar和WideCharToMultiByte用法详解
这两个函数是由Windows提供的转换函数,不具有通用性
C语言提供的转换函数为mbstowcs()/wcstombs()
一、函数简单介绍
涉及到的头文件:
函数所在头文件:windows.h
#include windows.h
wchar_t类型所需头文件:wchar.h
#include wchar.h
( 1 ) MultiByteToWideChar()
函数功能:该函数映射一个字符串到一个宽字符(unicode)的字符串。由该函数映射的字符串没必要是多字节字符组。?
函数原型:?
int MultiByteToWideChar(
UINT CodePage,
DWORD dwFlags,
LPCSTR lpMultiByteStr,
int cchMultiByte,
LPWSTR lpWideCharStr,
int cchWideChar
);
1 CodePage:指定执行转换的多字节字符所使用的字符集
这个参数可以为系统已安装或有效的任何字符集所给定的值。你也可以指定其为下面的任意一值:
Value Description CP_ACP ANSI code page CP_MACCP Not supported CP_OEMCP OEM code page CP_SYMBOL Not supported CP_THREAD_ACP Not supported CP_UTF7 UTF-7 code page CP_UTF8 UTF-8 code page 2 dwFlags:一
MB_PRECOMPOSED:通常使用——就是MB_COMPOSITE值一起使用。
MB_COMPOSITE:通常使用——就是MB_PRECOMPOSED值一起使用。
MB_ERR_INVALID_CHARS:如果函数遇到无效的GetLastErro返回ERROR_NO_UNICODE_TRANSLATION
MB_USEGLYPHCHARS:使用象形文字替代控制字符。?
/非空字符的è中,e就是基?
标记MB_PRECOMPOSED和MB_COMPOSITE是互斥的,而MB_USEGLYPHCHARS和MB_ERR_INVALID_CHARS?
一般不使用0时。
3 lpMultiByteStr:指向待。?
4 cchMultiByte:指定由参数lpMultiByteStr指向的字符串中字。可以-1,会自lpMultiByteStr指定的字符串的
(如果字符串不是以空字符中止,-1可能失0函数将失?
5 lpWideCharStr:指向接收被。?
6 cchWideChar:指定由参数lpWideCharStr指向的。若此0,函数不会lpWideChatStr所需的
返回值:
如果函数运行成功,并且cchWideChar不为0,返回值是由lpWideCharStr指向的缓冲区中写入的宽字符数;
如果函数运行成功,并且cchMultiByte为0,返回值是待转换字符串的缓冲区所需求的宽字符数大小。(此种情况用来获取转换所需的wchar_t的个数)
如果函数运行失败,返回值为零。
若想获得更多错误信息,请调用GetLastError()函数。它可以返回下面所列错误代码:
ERROR_INSUFFICIENT_BUFFER; ? ? ERROR_INVALID_FLAGS;
ERROR_INVALID_PARAMETER; ? ? ? ? ERROR_NO_UNICODE_TRANSLATION。
函数功能:该函数映射一个unicode字符串到一个多字节字符串。?
函数原型:?
int WideCharToMultiByte(
UINT CodePage,
DWORD dwFlags,
LPCWSTR lpWideCharStr,
int cchWideChar,
LPSTR lpMultiByteStr,
int cchMultiByte,
LPCSTR lpDefaultChar,
LPBOOL pfUsedDefaultChar
);
与MultiByteToWideChar()函数中的参数类似,但是多了两个参数:
lpDefaultChar和pfUsedDefaultChar:只有当WideCharToMultiByte函数遇到一个宽字节字符,而该字符在uCodePage参数标识的代码页中并没有它的表示法时,WideCharToMultiByte函数才使用这两个参数。(通常都取值
原创力文档


文档评论(0)