wchar_t 和 char 规格严格

  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;  

原文地址:https://www.cnblogs.com/diyunpeng/p/1997411.html