Processing math: 100%
본문 바로가기

Win32 API

1. Win32 API - 코딩 규칙


1. 접두어 규칙과 표기법

Win32API 코딩 스타일

 

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가 포함되어있습니다.
  • 예시 minwdef.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