C++プログラミングのCString、stringと、char配列の変換
C++プログラミングのCString、stringと、char配列の変換
ネット上ではCString、string、char配列の変換に関する文章がいっぱいありますが、混乱していて、目的を達成できないことがたくさんあります。ここで、自分で調整した変換方法をここに貼ってメモします。
コンパイル環境:Vs 2008、Use Unicode Chracter Set
ネット上では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());
疑問があれば、メッセージをお願いします。あるいは、当駅のコミュニティで交流して討論してください。ありがとうございます。