728x90
MBCS와 WBCS
- 기존에 개발된 프로그램과의 호환성 및 지원하지 않는 환경에서 사용하는 사용자가 있을 수 있기 때문에 WBCS만으로 구현하기 어려움
- MBCS와 WBCS 각각 프로그램을 구현하면 배포 및 개발에 어려움이 있음
- 여러 이유때문에 MBCS와 WBCS를 동시에 지원하는 프로그램을 짜는 것이 좋음
MBCS와 WBCS 동시 지원 매크로
- windows.h
typedef char CHAR;
typedef wchar_t WCHAR;
#define CONST const
typedef CHAR* LPSTR;
typedef CONST CHAR* LPCSTR;
typedef WCHAR* LPWSTR;
typedef CONST WCHAR* LPCWSTR;
#ifdef UNICODE
typedef WCHAR TCHAR;
typedef LPWSTR LPTSTR;
typedef LPCWSTR LPCTSTR;
#else
typedef CHAR TCHAR;
typedef LPSTR LPTSTR;
typedef LPCSTR LPCTSTR;
#endif
- UNICODE가 정의되면 TCHAR는 WCHAR -> wchar_t가 되고 아닐 시 TCHAR는 CHAR -> char이 됨
#ifdef _UNICODE
#define __T(x) L##x // __T("ABC") -> L"ABC"
#define _tmain wmain
#define _tcslen wcslen
#define _tprintf wprintf
#define _tscanf wscanf
#else
#define __T(x) x
#define _tmain main
#define _tcslen strlen
#define _tprintf printf
#define _tscanf scanf
#endif
#define _T(x) __T(x)
#define _TEXT(x) __T(x)
- _UNICODE가 정의되면 _T("ABC")는 __T("ABC") -> L"ABC"가 되고 아닐 시 _T("ABC")는 __T("ABC") -> "ABC"가 됨
- 즉 매크로 정의 여부에 따라 MBCS, WBCS 형식을 따르게 됨
728x90
'Programming > System Programming' 카테고리의 다른 글
윈도우즈 시스템 프로그래밍 - 3. 64비트 기반 프로그래밍(2) (0) | 2020.07.08 |
---|---|
윈도우즈 시스템 프로그래밍 - 3. 64비트 기반 프로그래밍(1) (0) | 2020.07.08 |
윈도우즈 시스템 프로그래밍 - 2. 아스키코드 vs 유니코드(1) (0) | 2020.07.07 |
윈도우즈 시스템 프로그래밍 - 1. 컴퓨터 구조에 대한 첫 번째 이야기(2) (0) | 2020.07.07 |
윈도우즈 시스템 프로그래밍 - 1. 컴퓨터 구조에 대한 첫 번째 이야기(1) (0) | 2020.07.06 |