MultiByteToWideChar与WideCharToMultiByte用法详解.docVIP

MultiByteToWideChar与WideCharToMultiByte用法详解.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
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参数标识

您可能关注的文档

文档评论(0)

kehan123 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档