1. // Convert the char* to CString or TCHAR;  
  2. //CP_ACP can be replaced by CP_UTF8 or other codepage depend on the request;  
  3. //--------------------------------------------------------------------------  
  4.     char* pbuffer = "peng shui ming";  
  5.  
  6.     DWORD dwCount = MultiByteToWideChar(CP_ACP, 0, pbuffer, -1, 0, 0 );  
  7.     TCHAR* pch = new TCHAR[dwCount];  
  8.     memset(pch, 0, dwCount * sizeof(TCHAR));  
  9.     MultiByteToWideChar(CP_ACP, 0, pbuffer, -1, pch, nCount);  
  10.  
  11.     CString str = pch;  
  12.       
  13.     //OR  
  14.     //filename is type of char*  
  15.       
  16.     int cchfilename = MultiByteToWideChar( CP_UTF8, 0, filename, -1, 0, 0 );  
  17.     wchar_t* pfilename = new wchar_t[cchfilename];  
  18.     memset( pfilename, 0, cchfilename * sizeof(wchar_t) );  
  19.     MultiByteToWideChar( CP_UTF8, 0, filename, -1, pfilename, cchfilename );  
  20.       
  21.       
  22. //Convert the CString to char*  
  23. //----------------------------------------------------------------------------  
  24.     CString str = _T("peng shui ming");  
  25.     DWORD dwNum = WideCharToMultiByte(CP_UTF8,NULL,str,-1,NULL,0,NULL,NULL);  
  26.     char* pch = new char[dwNum];  
  27.     WideCharToMultiByte(CP_UTF8,NULL,str,-1,pch,dwNum,NULL,NULL);