MFC에서 CString 문자열을 cout을 통해서 콘솔 창에 출력하는 방법


간단한 이야기 같으나 멋모르고 달려들다간 간단하지 않다는 걸 깨닫게 된다는게 문제.


CString msg = _T("");

msg += "::_TrackMouseEvent()가 WM_MOUSELEAVE 메시지를 발생 시켰군";

msg += "\n현재의 클라이언트 뷰의 자식 윈도우의 영역을 빠져~~~ 나갈 때~~ 발생시키는 메시지이다.";


//wcout << (const wchar_t*)msg << endl; //이건 띄워쓰기 뒷 부분은 안 나옴

cout << (CString)msg << endl;


위의 코드를 실행하면 cout을 출력하는 부분에서 msg에 대한 주소 값만 달랑 출력하고 끝난다.

0078F488


wcout << (const wchar_t*)msg << endl 

이 방법을 사용해 보면 문자열 내용의 첫 번째 띄워쓰기 뒷 부분은 또 나오질 않는다.


해법은 

프로젝트명 - 마우스 우 클릭 - Properties - Configuration Property -

General - Character set을 Multi-Byte character set으로 설정해 줘야 가능하다.


이렇게 설정하고 나면 cout 대신에 printf()를 이용해도 된다.

참고로 printf()와 cout은 전자가 속도에서 훨씬 빠르다는 것.


printf("%s", msg);  //가능



+ Recent posts