首页 > 代码库 > [VC]char 和 wchar_t相互转化

[VC]char 和 wchar_t相互转化

  1. #include <windows.h>   
  2. #include <stdio.h>   
  3.   
  4. //function: charTowchar   
  5. //purpose:char to WCHAR 、wchar_t、LPWSTR etc   
  6. void charTowchar(const char *chr, wchar_t *wchar, int size)   
  7. {      
  8.      MultiByteToWideChar( CP_ACP, 0, chr,   
  9.          strlen(chr)+1, wchar, size/sizeof(wchar[0]) );   
  10. }   
  11.   
  12. //function: wcharTochar   
  13. //purpose:WCHAR 、wchar_t、LPWSTR to char   
  14. void wcharTochar(const wchar_t *wchar, char *chr, int length)   
  15. {   
  16.      WideCharToMultiByte( CP_ACP, 0, wchar, -1,   
  17.          chr, length, NULL, NULL );   
  18. }   
  19.   
  20. int main (void)   
  21. {   
  22.     char      chr[128];   
  23.     wchar_t   *wchar = L"陈鸿钦";   
  24.        
  25.   
  26.     //wchar_t to char   
  27.      wcharTochar(wchar, chr, sizeof(chr));   
  28.      printf("char is %s\n", chr);   
  29.   
  30.     //char to wchar_t   
  31.      wchar = (wchar_t *)malloc(sizeof(wchar_t) * 64);   
  32.      charTowchar(chr, wchar, sizeof(wchar_t) * 64);   
  33.        
  34.      wprintf_s(L"%s\n", wchar);//   
  35.      getchar();   
  36.   
  37.     return 0;   
  38. }  
  39. Requirements: Ws2_32.lib