유니코드와 멀티 바이트 문자 (MBCS) 지원 설정
예를 들어, 일본어 및 중국어 언어 큰 문자 집합에 있습니다.이러한 시장에 대 한 프로그래밍을 지원 하기 위해 Microsoft Foundation 클래스 라이브러리 (MFC) 큰 문자 집합을 처리 하는 두 가지 방법에 대해 활성화 됩니다.
Unicode
멀티 바이트 문자 집합 (MBCS)
유니코드 문자열에 대 한 MFC 지원
전체 클래스 라이브러리는 유니코드 문자와 문자열 조건부로 활성화 됩니다.특히 클래스 CString 유니코드를 지원 합니다.
UAFXCW입니다.LIB |
UAFXCW입니다.PDB |
UAFXCWD입니다.LIB |
UAFXCWD입니다.PDB |
MFCxxU.LIB |
MFCxxU.PDB |
MFCxxU.DLL |
MFCxxUD.LIB |
MFCxxUD.PDB |
MFCxxUD.DLL |
MFCSxxU.LIB |
MFCSxxU.PDB |
MFCSxxUD.LIB |
MFCSxxUD.PDB |
MFCMxxU.LIB |
MFCMxxU.PDB |
MFCMxxU.DLL |
MFCMxxUD.LIB |
MFCMxxUD.PDB |
MFCMxxUD.DLL |
(xx ; 파일의 버전 번호를 나타냅니다. 예를 들어, '80' 버전을 8.0 있습니다.)
CString기반이 되는 TCHAR 데이터 형식.경우 기호 _UNICODE 프로그램의 빌드에 대해 정의 된 TCHAR 형식으로 정의 된 wchar_t, 16 비트 문자 인코딩 형식.그렇지 않으면 TCHAR 로 정의 char, 일반 8 비트 문자 인코딩입니다.따라서 유니코드에서의 CString 의 16 비트 문자로 구성 됩니다.유니코드 없이 형식의 문자로 된 char.
에 유니코드 프로그래밍 응용 프로그램의 전체도 합니다.
사용 된 _T 매크로를 유니코드에 이식 가능한 조건에 따라 코드 리터럴 문자열.
문자열을 전달할 때 여부 함수 인수에 문자 또는 바이트의 길이 필요로 주의 하십시오.차이점은 유니코드 문자열을 사용 하는 경우에 중요 합니다.
노트북 버전의 C 런타임 문자열 처리 함수를 사용 합니다.
문자와 문자 포인터에 대해 다음 데이터 형식을 사용 하십시오.
TCHAR사용 하는 char.
LPTSTR사용 하는 char*.
LPCTSTR사용 하는 const char*.CString운영자 제공 LPCTSTR 사이의 변환에 CString 및 LPCTSTR.
CString또한 유니코드 인식 생성자, 대입 연산자 및 비교 연산자를 제공합니다.
유니코드 프로그래밍에 대 한 관련 내용은 유니코드 항목.런타임 라이브러리 참조 휴대용 버전의 모든 문자열 처리 함수를 정의 합니다.범주를 참조 하십시오. 국제화.
MBCS 문자열에 대 한 MFC 지원
클래스 라이브러리도 멀티 바이트 문자 집합을 사용 하지만 (DBCS) 더블 바이트 문자 집합입니다.
멀티 바이트 문자 집합에서 문자 하나 또는 두 개의 바이트 수 있습니다.두 바이트인 경우 첫째 바이트 "선행 바이트" 특수는 선택 된 특정 범위에 따라 어떤 코드 페이지 사용 중입니다.전체적으로 볼 때, 리더와 "후행 바이트" 고유 문자 인코딩을 지정 합니다.
경우 기호 _MBCS 형식 프로그램의 빌드에 대해 정의 된 TCHAR는 CString 을 기반으로, 대응 char.확인할 수 있습니다는 CString 선행 바이트 및 후행 바이트 속해 있습니다.C 런타임 라이브러리 함수에서이 확인할 수 있도록 제공 합니다.
DBCS에서 특정된 문자열 모든 싱글바이트 ANSI 문자, 모든 더블 바이트 문자 또는 둘의 조합을 포함할 수 있습니다.이러한 가능성에 문자열을 구문 분석할 때는 특별히 주의 해야 합니다.여기에 CString 개체입니다.
[!참고]
Mfc에서 유니코드 문자열 직렬화 유니코드와 MBCS 문자열을 실행 하는 응용 프로그램의 버전에 관계 없이 읽을 수 있습니다.데이터 파일은 유니코드와 MBCS 버전의 프로그램 간에 이식 가능입니다.
CString특수 "일반 텍스트" 버전의 C 런타임 함수 호출을 사용 하 여 멤버 함수 또는 유니코드 인식 기능을 사용 합니다.따라서 예를 들어, 경우는 CString 함수를 호출 합니다 일반적으로 strcmp, 해당 제네릭 텍스트 함수를 호출 합니다. _tcscmp 대신.방법에 따라 기호 _MBCS 및 _UNICODE 정의 된 _tcscmp 같이 매핑합니다.
_MBCS정의 |
_mbscmp |
_UNICODE정의 |
wcscmp |
어떤 기호도 정의 |
strcmp |
[!참고]
기호 _MBCS 및 _UNICODE 상호 배타적입니다.
모든 런타임 문자열 처리 루틴에 대 한 일반 텍스트 함수 매핑을 나와 C 런타임 라이브러리 참조.특히, 국제화.
마찬가지로, CString "일반" 데이터 형식 매핑을 사용 하 여 메서드 구현 합니다.To enable both MBCS and Unicode, MFC uses TCHAR for char, LPTSTR for char*, and LPCTSTR for const char*.이러한 MBCS 나 유니코드에 대 한 올바른 매핑을 확인합니다.