MFC

[MFC] MessageBoxW

FORHAPPy 2021. 12. 22. 09:22

윈도우즈는 멀티바이트코드와 유니코드를 지원한다. 

문자열을 인자로 받는 api함수들은 멀티바이트 버전과 유니코드 버전이 따로 있다. 

MFC 메시지 박스 함수는 내부적으로 api 함수의 메시지 박스 함수를 사용한다. 

MessageBox 함수는 매크로 함수인데 

멀티바이트 환경에서는 MessageBoxA함수가 되고,

유니코드 환경에서는 MessageBoxW함수가 된다. 

 

(문자열을 인자로 받는 APi 함수는 멀티바이트 함수이면 끝에 A가 붙고 유니코드 환경이면 w가 붙는다. )

멀티바이트는 char로 선언된는 1바이트 문자 

유니코드는 unsigned short로 선언되는 2바이트 문자이다. 

 

 

프로젝트 환경을 바꿔주는 방법은 

메뉴 - 프로젝트 - <프로젝트 이름>속성 - 구성속성 - 일반 - 문자집합 - 멀티바이트 문자집합사용 을 선택하면된다. 

 

유니코드 환경이면 문자열 앞에 L을 붙여준다. 

 

[참고] https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=brosvaby&logNo=165350779 

 

error C2664: 'MessageBoxW' : 매개 변수 2을(를) 'const char [2]'에서 'LPCWSTR'(으)로 변환할 수 없습니다.

제가 보기에는 이 에러의 원인은 'const char [23]'에서 'LPCWSTR' 서로 인자가 다르기 때문입니다....

blog.naver.com

 

'MFC' 카테고리의 다른 글

[MFC] CString 클래스 멤버함수 요약  (0) 2022.01.05
[MFC] MFC 특징 복습  (0) 2021.12.27
[MFC]타일피킹(직선의 방정식)  (0) 2021.12.25
[MFC] 윈도우창 관련 함수(클라이언트창 크기 셋팅)  (0) 2021.12.24
[MFC] MAX_PATH  (0) 2021.12.23