본문 바로가기
개발/C++,MFC

프로젝트 - 속성 - 문자집합 : 유니코드, 멀티바이트

by 언제나초심. 2012. 10. 22.
반응형

현재 쓰고 있는 버젼은 비주얼 스튜디오 2010 이다.




프로젝트 속성 중에 문자집합이 있는데,




1. 설정 안함


2. 유니코드(와이드바이트)


3. 멀티바이트




세가지 이다. 




유니코드의 경우에는 문자당 2바이트를 차지하고,


멀티바이트의 경우에는 복합적으로 작용하다. 1바이트 또는 2바이트로 저장이 된다.




MessageBox 


유니코드 : MessageBoxW


멀티바이트코드 : MessageBoxA






유니코드 : LPCWSTR


멀티바이트코드 : LPCSTR






MessageBoxA(NULL, str, "test", 0);  -> 정상


MessageBoxW(NULL, str, L"test", 0);  -> 정상



개인적으로 정리를 해보자면, 멀티바이트 코드는 한글과 같은 경우 2바이트를 차지하고, 영어는 1바이트로 처리할 것으로 보이며,

유니코드의 경우에는 2바이트로 처리를 한다.



----------------------------------------------------------------

유니코드를 사용할 때

----------------------------------------------------------------

   strlen     ->    wcslen

   strcpy    ->    wcscpy

   strncpy  ->    wcsncpy

   strcat     ->    wcscat

   strncat   ->    wcsncat

   strcmp   ->    wcscmp

   strncmp ->    wcsncmp

   printf      ->    wprintf

   scanf     ->    wscanf

   fgets      ->    fgetws

   fputs      ->    fputws

   sprintf    ->    swprintf



strcpy <- _tcscpy -> wcscpy    strcpy(a,b);  b를 a로 복사

strncpy <- _tcsncpy -> wcsncpy   strncpy(a,b,c); b를 a에 복사하되 c만큼만 복사

strlen <- _tcslen -> wcslen    strlen(a) a의 길이를 반환

strcat <- _tcscat -> wcscat     strcat(a,b); b를 a뒤에 붙여서 a 에 저장한다.

strncat <- _tcsncat -> wcsncat     strcat(a,b,c); b를 a뒤에 c만큼 붙여서 a에 저장한다.






[출처] 문자 집합 설정 : 멀티바이트 , 유니코드 설정|작성자 codefiction

반응형

'개발 > C++,MFC' 카테고리의 다른 글

윈도우창 띄우기. doModal 과 Create  (0) 2012.12.12
[MFC, C++] MFC 배경 이미지 관련  (0) 2012.12.07
MFC 소스가 멘붕일 때에 대처  (0) 2012.12.05
에디터 컨트롤 변경불가 상태로  (0) 2012.11.12
[MFC] 오류 종류  (0) 2012.10.15
헤더파일에 변수 선언 하면 ?  (0) 2012.10.12
include ?  (0) 2012.10.12
[MFC] 주석. 주석해제. 단축키  (0) 2012.10.12