MFC로 처음 응용 프로그램 마법사를 실행할 때
간단하게 대화상자 기반 프로그램을 선택하고
유니코드 라이브러리 사용 에 체크를 했다.
간단하게 Dlg.cpp에서 OnInitDialog()에 밑의 두 문장을 추가했는데 오류가 발생했다.
AfxMessageBox("OK!");
MessageBox("hi");
------------------------------------------------------------------------------------------
error C2665: 'AfxMessageBox' : 2개의 오버로드 중 모든 인수 형식을 변환할 수 있는 오버로드가 없습니다.
c:\program files\microsoft visual studio 8\vc\atlmfc\include\afxwin.h(5025): 'int AfxMessageBox(LPCTSTR,UINT,UINT)'일 수 있습니다.
c:\program files\microsoft visual studio 8\vc\atlmfc\include\afxwin.h(5027): 또는 'int AfxMessageBox(UINT,UINT,UINT)'
인수 목록 '(const char [4])'을(를) 일치시키는 동안
error C2664: 'CWnd::MessageBoxW' : 매개 변수 1을(를) 'const char [3]'에서 'LPCTSTR'(으)로 변환할 수 없습니다.
가리킨 형식이 관련이 없습니다. 변환하려면 reinterpret_cast, C 스타일 캐스트 또는 함수 스타일 캐스트가 필요합니다.
------------------------------------------------------------------------------------------
=> 해결방법 : 문자열 앞에 'L'을 붙여주면 된단다.
텍스트를 유니코드로 인식하는 방법이라더라.
유니코드 라이브러리를 사용하도록 했기 때문에 이런 과정이 필요하다고 한다.
AfxMessageBox(L"OK!");
MessageBox(L"hi");
=> 유니코드 라이브러리를 사용하지 않고 멀티바이트 문자를 사용하면 'L'이 없어도 에러가 없이
잘 수행된다.
AfxMessageBox(_T("OK!"));
=> 이렇게 하는 방법도 있네??
<출처> http://blog.naver.com/PostView.nhn?blogId=hoonleeme&logNo=20091786536&viewDate=¤tPage=1&listtype=0
'old drawer > C, C++, MFC' 카테고리의 다른 글
[MFC] 실습3. Rect를 통해 버튼 그리기 & 비트맵 등록하기 예제 프로젝트 (0) | 2011.10.11 |
---|---|
[MFC] Bitmap 등록 후 화면에 그리기 (0) | 2011.10.11 |
[MFC] Rect로 버튼 그리기 (0) | 2011.10.11 |
[MFC] ListCtrl 구현 관련 사이트 모음 (3) | 2011.07.29 |
[MFC] error C2593: 'operator +='이(가) 모호합니다. (0) | 2011.07.25 |