C++プログラミングのCString、stringと、char配列の変換


C++プログラミングのCString、stringと、char配列の変換
ネット上ではCString、string、char配列の変換に関する文章がいっぱいありますが、混乱していて、目的を達成できないことがたくさんあります。ここで、自分で調整した変換方法をここに貼ってメモします。
    コンパイル環境:Vs 2008、Use Unicode Chracter Set

//----------------ANSI      UNICODE   ----------------------//  
 
//         
char szDCBparam[50] = {'0','1','\0'};  
 
//             
DWORD dwNum = MultiByteToWideChar (CP_ACP, 0, szDCBparam, -1, NULL, 0);  
//                
wchar_t *pwText = new wchar_t[dwNum] ;  
//          pwText       
if (!MultiByteToWideChar (CP_ACP, 0, szDCBparam, -1, pwText, dwNum))  
{  
  return;  
}  
//  :    char    CString,    CString szTest = CString(szDCBparam);
 
 
//----------------UNICODE      ANSI   ----------------------// 
//---------------- CString  char   ---------------------------// 
 
//         
CString szErrorInfo = _T("this is a test string!");  
 
//        ANSI       ,  ,         
char InfoString[100];  
 
//          InfoString    
if (!WideCharToMultiByte(CP_ACP,0,LPCTSTR(szErrorInfo),-1,InfoString,100,NULL,NULL))  
{  
  return;  
}  
 
//---------------- CString  string----------------------// 
CString cstr=_T("test");  
std::string str = (CStringA)cstr;  
//   , vs2008 ,  std::string temp = cstr.GetBuffer(0)  。
 
//---------------- string  CString----------------------// 
std::string strTest = "test"; 
CString cstrTest = CString(strTest.c_str()); 

疑問があれば、メッセージをお願いします。あるいは、当駅のコミュニティで交流して討論してください。ありがとうございます。