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);


제일쉬움...ㅋㅋㅋㅋㅋㅋ




Posted by HUEJI
: