코딩 지식
A, 유니 코드의 멀티 바이트
(. 1) 에서 Windows 또한 유니 코드라고는, 다양한 멀티 바이트도 좁은 바이트라고; VS 기본 유니 코드 인코딩 에서 구성 속성 항목 속성 >> >> 기존 문자 세트는 유니 코드 문자를 선택 가능 멀티 바이트 문자 세트 또는 세트
(2) 기능과 멀티 바이트 문자 스트링 타입 별의 유니 코드 버전
대부분의 매개 변수는 Win32 API 함수의 문자열을 두 가지 버전이 있습니다
멀티 바이트 버전 대신에, 함께 종료 | 유니 코드 버전을 대신하여, W에 종료 | 버전에 따라 자동으로 선택 |
---|---|---|
예를 들면 : CreateEventA | 예를 들면 : CreateEventW | 예를 들면 : CreateEvent에 |
C 런타임 라이브러리는 또한 많은 유사한 기능을 가지고있다
멀티 바이트 버전 | 유니 코드 버전 | 적응 버전 |
---|---|---|
strcpy를 | wcscpy | _tcscpy |
strcat와 | wcscat | _tscscat |
나 strlen | wcslen | _tcslen |
두 가지 기능이있다, 그래서 두 개의 문자가있다
멀티 바이트 문자 | 유니 코드 문자 | 적응 문자 |
---|---|---|
숯 | wchar_t를 | TCHAR |
(3) 일반 Win32에서의 문자열 유형
LPSTR, LPWSTR, LPTSTR, LPCTSTR
LP 대표 포인터를 접두사, 접미사 문자열 STR을 나타내는
LPSTR : 멀티 바이트 대신
LPWSTR : 유니 코드를 대신
LPTSTR : T 적응
LPCTSTR : C 대표 대표 적응 CONST + T
참고 : 사용 변수 유형, 이러한 적응 형 LPTSTR로, 관련 문자열은 포장) (텍스트를 사용할 필요가
const char* str = "hello";
const wchar_t* wstr = L"hello";
const TCHAR* tstr = TEXT("hello");
_T에 (4) ()
#ifdef _UNICODE
#define _T(X) L ## X //Unicode版本
#endif
#ifndef _UNICODE
#define _T(X) X //多字节版本
#endif
(5) 유니 멀티 선택
1.Unicode 프로그램 환경 적응성, 깨진되지 않습니다 문제
2.Unicode 프로그램은 빠른 멀티 바이트 프로그램에 비해 실행됩니다. 원인 : 내부 Windows가 유니 코드를 사용하여 인코딩은 멀티 바이트 함수 매개 변수는 트랜스 코딩 후 유니 코드 함수에 넘겨됩니다
3. 배경 멀티 바이트 제어 할 수 있고, GUI 프로그램이 유니 코드를 사용하는 것이 바람직하다