맨날 까먹는다..
개인적인 기억 저장용으로 포스팅합니다.
P.S : 이 프로젝트는 UniCode 기반이라는 전제하에..
1. const char에서 const wchar_t* 로 변환할 수 없습니다.
이 문제는 유니코드를 vs2008부터 지원하면서 생기는 에러다. 문자열을 쓸때 _T()를 사용해야함.
1.1 wchar_t*에서 const char* 블라블라.
char szTemp[ _MAX_PATH ] = { 0 , } ;
WideCharToMultiByte( CP_ACP, 0 , 스트링변수.GetBuffer(), -1, szTemp, _MAX_PATH, NULL, NULL );
2. int -> CString
CString szBuff;
szBuff.format(_T("%d") , int Value);
3. CString -> int
int Value = _ttoi(CString Value);
4. CString -> char*
4.1 ( 멀티바이트 환경에서 사용할수 있다 )
CString szBuff;
szBuff = _T("Test Text");
char *chBuff = LPSTR(LPCTSTR(szBuff));
4.2
CString szBuff = _T("아아아");
int nStrLen = szBuff.GetLength();
char* chBuff = new char[nStrLen + 1];
WideCharToMultiByte(CP_ACP, 0, szBuff, -1, chBuff, nStrLen+1 , NULL, NULL);
Delete chBuff;
4.3 ( 유니코드 환경에서 사용할수 있다. )
CString szBuff = _T("아아아2");
char* chBuff = new char[ szBuff.GetLength() + 1 ];
strcpy( chBuff , CT2A(szBuff) );
5. char* -> CString
char chBuff[] = "Hello";
CString szBuff;
szBuff.format(_T("%s", chBuff);
6. CString -> WCHAR*
CString strFileName = _T("ControlData.xml");
WCHAR* wszName = strFileName.GetBuffer( strFileName.GetLength() );
출처 - http://blog.naver.com/anno414/140161111271