CString를 char*로 바꾸기
Programming/MFC 2012. 4. 25. 16:06 |1. 방법 하나.
CString str = _T("프로그래밍은 잉여하게 하면 됩니다.");
char* sz;
sLen = WideCharToMultiByte(CP_ACP, 0, str, -1, NULL, 0, NULL, NULL);
sz = new char [sLen+1];
WideCharToMultiByte(CP_ACP, 0, str, -1, sz, sLen, NULL, NULL);
WideCharToMultiByte 함수의 매개변수가 무엇을 뜻하는지 티끌만큼도 모르겠지만 일단 된다.
내가 봤던 어떤 방법 중에서도 확실한 방법같음.
처리 다 하고 delete를 잊지 않도록.
2. 방법 두울.
인터넷에 돌아댕기는 GetBuffer나 (LPCSTR)(LPCWSTR) 등은 성미에 안맞아서ㅡ.ㅡ;
방법 하나를 알기 전에 열심히 짜놨건만 이거 wide char가 안됨.
함수
void StringToChar(CString str, char* sz)
{
int strLen = str.GetLength();
int i=0;
for(i=0;i<strLen;i++)
{
sz[i] = str.GetAt(i);
}
sz[i] = '\0';
}
사용
char sz[512] = {};
CString str = _T("abcdefg~");
StringToChar(str, sz);
이래놓고 sz를 써먹으면 됨.
끝!
※ 참고 ※ char* -> CString
거지같은 형변환 하지만 의외로 어렵지 않아요!
char* szDDong = "짜징남...";
CString strDDong = CString(szDDong);
제일쉬움...ㅋㅋㅋㅋㅋㅋ
'Programming > MFC' 카테고리의 다른 글
[MFC 종료]OnCancel(), OnClose(), OnDestroy(), OnOK() 그리고 Dialog 소멸자 (0) | 2012.06.27 |
---|---|
MFC 문자열 총정리 (0) | 2012.06.15 |
자식윈도우 Z-order 문제 (2) | 2012.03.30 |
VISUAL C++ 2008 MFC 윈도우 프로그래밍 247p 3번 (0) | 2012.02.16 |
RedrawWindow() (0) | 2012.02.13 |