1. 접두어 규칙과 표기법
Coding Style Conventions - Win32 apps
Coding style conventions are used in this sample series to aid clarity and consistency.
learn.microsoft.com
주로 쓰는 접두어 규칙
접두어 | 원본 | 의미 |
cb | Count of Bytes | 바이트 수 |
dw | double word | 부호없는 long형 정수 |
h | double word | 윈도우, 비트맵, 파일등의 핸들 |
sz | Null Terminated | NULL 종료 문자열 |
w | Word | 부호없는 정수형 |
i | Integer | 정수형 |
b | Bool | 논리형 |
헝가리언 표기법
- 변수에 대한 추가 정보를 제공하기 위해 변수 이름에 접두어(prefix)를 추가하는 방법.
- 변수에 대한 의미론적 정보를 제공하여 의도한 용도를 알려줌.
- 데이터 타입을 변수명에서 추정 가능.
- 출시 당시 IDE가 발전하지 않은 80년대였기 때문에 효과가 있었지만 현재는 MS 공식 가이드라인에서 사용을 권고하지 않음.
2. 데이터형
Typedefs
- Windows 헤더에는 수많은 typedef가 포함되어있습니다.
- 예시 minw∈def.h
typedef unsigned long DWORD;
typedef int BOOL;
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef float FLOAT;
typedef FLOAT \*PFLOAT;
typedef BOOL near \*PBOOL;
typedef BOOL far \*LPBOOL;
typedef BYTE near \*PBYTE;
typedef BYTE far \*LPBYTE;
typedef int near \*PINT;
typedef int far \*LPINT;
typedef WORD near \*PWORD;
typedef WORD far \*LPWORD;
typedef long far \*LPLONG;
typedef DWORD near \*PDWORD;
typedef DWORD far \*LPDWORD;
typedef void far \*LPVOID;
typedef CONST void far \*LPCVOID;
정수형
데이터형식 | 크기 | 부호 여부 |
BYTE | 8 Bit | 부호 없음 |
DWORD | 32 Bit | 부호 없음 |
INT32 | 32 Bit | 부호 있음 |
INT64 | 64 Bit | 부호 있음 |
LONG | 32 Bit | 부호 있음 |
LONG LONG | 64 Bit | 부호 있음 |
UINT32 | 32 Bit | 부호 없음 |
UNIT64 | 64 Bit | 부호 없음 |
ULONGLONG | 64 Bit | 부호 없음 |
WORD | 16 Bit | 부호 없음 |
BOOL 형식
- int 값의 형식 별칭
- C++의 bool 형식과 구별.
- BOOL 형식의 값
#define FALSE 0
#define TRUE 1
- BOOL 반환 형식의 예시
// 1. ( O )
if (SomeFunctionThatReturnsBoolean())
{
...
}
// 2. ( O )
if (SomeFunctionThatReturnsBoolean() != FALSE)
{
...
}
// 3. ( X )
if (SomeFunctionThatReturnsBoolean() == TRUE)
{
...
}
포인터 타입
형식 정의 | 정의 |
CHAR | char |
PSTR 또는 LPSTR | char* |
PCSTR 또는 LPCSTR | const char* |
PWSTR 또는 LPWSTR | wchar_t* |
PCWSTR 또는 LPCWSTR | const wchar_t* |
UNICODE 텍스트
매크로 | Unicode | ANSI |
TCHAR | wchar_t | char |
TEXT("x") 또는 _T("x") | L"x" | "x" |
'Win32 API' 카테고리의 다른 글
6. Win32 API - WindowClass (0) | 2024.02.24 |
---|---|
5. Win32 API - Event (0) | 2024.02.24 |
4. Win32 API - Message (0) | 2024.02.19 |
3. Win32 API - hInstance (0) | 2024.02.19 |
2. Win32 API - Handle (0) | 2024.02.19 |