문자열 2

[MFC] MessageBoxW

윈도우즈는 멀티바이트코드와 유니코드를 지원한다. 문자열을 인자로 받는 api함수들은 멀티바이트 버전과 유니코드 버전이 따로 있다. MFC 메시지 박스 함수는 내부적으로 api 함수의 메시지 박스 함수를 사용한다. MessageBox 함수는 매크로 함수인데 멀티바이트 환경에서는 MessageBoxA함수가 되고, 유니코드 환경에서는 MessageBoxW함수가 된다. (문자열을 인자로 받는 APi 함수는 멀티바이트 함수이면 끝에 A가 붙고 유니코드 환경이면 w가 붙는다. ) 멀티바이트는 char로 선언된는 1바이트 문자 유니코드는 unsigned short로 선언되는 2바이트 문자이다. 프로젝트 환경을 바꿔주는 방법은 메뉴 - 프로젝트 - 속성 - 구성속성 - 일반 - 문자집합 - 멀티바이트 문자집합사용 을 ..

MFC 2021.12.22

[C++, C] 문자열

C언어에서의 문자열 아래 둘은 같은 표현 char intro[10] = "introduce"; char intro[10] = { 'i', 'n', 't', 'r' , 'o', 'd', 'u', 'c', 'e', '\0' }; char *intro = "introduce"; 문자열은 배열이다. 문자열 뒤에는 널문자가 더해진다. 따라서 문자열의 길이를 알려면 널문자를 빼면 된다. 문자열은 그 문자열의 시작되는 주소를 가르킨다. (배열로 생각하면 된다.) -->ex) arr는 &arr[0]으로 첫번째 주소 및 배열의 주소가 된다. 배열로 선언한 ptr3만 주소가 다르다. ptr은 주소이자 문자열이다. 배열 형태로 초기화 할 경우 문자가 바뀐다. 포인터 (ptr1)로 초기화 할 경우 오류가 난다. 그 원소의 값..