컴퓨터/Win32-API
Windows 응용 프로그래밍에서는 편의성을 위해 기본 자료형을 여러 가지 형태로 재정의해서 사용합니다.
C언어를 공부했던 분들이라면 아스키 코드에 대해서 들어보았을 것입니다. 하지만 현재 Windows 응용 프로그래밍에서는 기본적으로 유니코드를 기본적으로 사용하기를 권장하는데요.
본문을 통해 유니코드와 아스키코드를 이해하고 어떤형태로 표현이 되는지 알아보도록 하겠습니다.
아스키 코드는 C언어를 만든 미국에서 정의하고 있는 자신들의 모국어를 표기하기 위한 표준의 언어입니다.
1byte로 문자를 표현하며 알파벳과, 다양한 기호들을 256가지 표현이 가능합니다.
세계 각지에서 프로그래밍이 사용되며 아스키코드로는 다양한 언어들을 표현하기 힘들어졌습니다.
이런 많은 언어들을 호환시키기 위한 코드가 바로 유니코드입니다.
유니코드는 2byte로 문자를 표현하며 영어,기호,한글 등 총 65,536가지의 문자를 표현할 수 있습니다.
Windows 응용프로그래밍에는 현재 유니코드를 기본적으로 권장하고 있으나, 과거의 아스키코드만 사용하던 프로그램 등을 위해 혼용해서 사용할 수 있도록 구성되어 있습니다.
재정의된 자료형을 표현하자면 다음과 같습니다.
원래 형식 | 재 정의된 형식 | 사용 문자 형식 |
char | CHAR | 아스키 코드 |
char* | PSTR 또는 LPSTR | 아스키 코드 포인터 |
const char* | Pctr 또는 lpcstr | 상수 아스키 코드 포인터 |
wchar | WCHAR | 유니코드 |
wchar_t* | PWSTR 또는 LPWSTR | 유니코드 포인터 |
cont wchar_t* | Pcwstr 또는 Lpcwstr | 상수 유니코드 포인터 |
자, 가운데 있는 녀석들이 Windows프로그래밍에서 사용자에게 알기 쉽게 제공하기 위해 typedef로 재정의된 자료형입니다.
몇가지 특징을 확인해 보면 조금 더 쉽게 알 수 있습니다.
C언어를 공부하는 과정에서 문자열을 입력하기 위해서 ""을 이용했습니다. Windows 프로그래밍에서는 아스키코드와 유니코드를 구분하기 위해 L의 유무로 표현하여 코딩합니다. 간단한 예시를 들자면 다음과 같습니다.
LPSTR str1 = "Hello World";
LPWSTR str2 = L"Hello World";
문자열 str1과 str2는 우리가 생각하기에는 동일한 문자 "Hello World"를 담고 있지만 표현하는 형식이 다르다는 것을 알아 두었으면 합니다.
Win32_API - 버튼 만들기 (0) | 2022.02.19 |
---|---|
Win32_API - 문자열 출력해보기(TextOutW / TextOutA) (0) | 2022.02.15 |
Win32_API - WM_PAINT(창 그리기) (0) | 2022.02.08 |
Win32_API - 그래픽 개요 (0) | 2022.02.07 |
Win32_API - 빈 프로젝트에서 WinMain으로 실행하기(with VisualStudio) (0) | 2022.02.04 |
91년생 공학엔지니어의 개발일지
TODAY :
YESTER DAY :
TOTAL :
Commnet