开启左侧

C++在Unicode和MBCS之间相互转换函数

[复制链接]
Criss 发表于 2020-3-31 15:34:33 | 显示全部楼层 |阅读模式
直接上代码:
  1. BOOL MByteToWChar(LPCSTR lpcszStr, LPWSTR lpwszStr, DWORD dwSize)
  2. {
  3.         DWORD dwMinSize;
  4.         dwMinSize = MultiByteToWideChar(CP_ACP, 0, lpcszStr, -1, NULL, 0);

  5.         if (dwSize < dwMinSize)
  6.         {
  7.                 return FALSE;
  8.         }
  9.         MultiByteToWideChar(CP_ACP, 0, lpcszStr, -1, lpwszStr, dwMinSize);
  10.         return TRUE;
  11. }

  12. BOOL WCharToMByte(LPCWSTR lpcwszStr, LPSTR lpszStr, DWORD dwSize)
  13. {
  14.         DWORD dwMinSize;
  15.         dwMinSize = WideCharToMultiByte(CP_OEMCP, NULL, lpcwszStr, -1, NULL, 0, NULL, FALSE);
  16.         if (dwSize < dwMinSize)
  17.         {
  18.                 return FALSE;
  19.         }
  20.         WideCharToMultiByte(CP_OEMCP, NULL, lpcwszStr, -1, lpszStr, dwSize, NULL, FALSE);
  21.         return TRUE;
  22. }
复制代码
如何使用:
  1. wchar_t wText[255] = {L"51Halcon机器视觉"};
  2. char sText[255]= {0};
  3. WCharToMByte(wText,sText,sizeof(sText)/sizeof(sText[0]));  //宽字节转多字节
  4. MByteToWChar(sText,wText,sizeof(wText)/sizeof(wText[0])); //多字节转宽字节
复制代码


您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表