본문 바로가기

무작정 따라해보기(정리, 문제풀기)/Win32API

2. Win32 API 프로그래밍

728x90

 

'나우캠퍼스X아워즈팜'유튜브의 'Win32 API 1강. 윈도우 데이터형 (2/3)'영상을 보고 정리한 내용입니다.

 

윈도우의 데이터형

  • c와 c++의 데이터형은 그대로 가져가고 c, c++의 데이터형를 기반으로 하여 윈도우 스타일의 데이터형을 만들었다.
  • '데이터를 아는 것 -> 사용할 메모리를 아는 것'이기 때문에 중요하다.
  • 윈도우 데이터형은 많기 때문에 MSDN에 'Windows Data Types'라고 검색하며 쓸 수 있다.

 

많이 쓰는 윈도우 데이터형

  • typedef는 c와 c++에서 다른 자료형의 별명을 만들기 위해 사용하는 예약어
  • H가 앞에 붙어있는 데이터형은 HANDLE로 만들어진 데이터형
  • HANDLE과 관련된 데이터형은 전부 void 포인터형이라는 것을 기억
  • '__stdcall'는 Win32API 함수를 호출할 때 함수의 매개변수를 호출하는 형태(함수의 매개변수를 스택에 넣는 순서(오른쪽부터 왼쪽) 등 )라고 생각.
  • W로 시작하는 타입은 유니코드 기반의 프로그래밍을 할 때 쓰인다.
  • 데이터형정의
    BYTE typedef unsigned char BYTE;
    BOOL typedef int BOOL --> (1, 0);
    CHAR typedef char CHAR;
    COLORREF typedef DWORD COLORREF;
    DWORD typedef unsigned long DWORD;
    PVOID typedef void *PVOID;
    HANDLE typedef PVOID HANDLE;
    HDC typedef HANDLE HDC;
    HGDIOBJ typedef HANDLE HGDIOBJ;
    HINSTANCE typedef HANDLE HINSTANCE;
    HWND typedef HANDLE HWND;
    LPVOID typedef void *LPVOID;
    LPWORD typedef WORD *LPWORD;
    LPSTR typedef CHAR *LPSTR;
    LPWSTR typedef WCHAR *LPWSTR;
    LPTSTR #ifdef UNICODE<br/> typedef LPWSTR LPTSTR;<br/>#else<br/> typedef LPSTR LPTSTR;<br/>#endif
    TCHAR #ifdef UNICODE<br/> typedef WCHAR TCHAR;<br/>#else<br/> typedef char TCHAR;<br/>#endif
    UINT typedef unsigned int UINT
    VOID #define VOID void
    WINAPI #define WINAPI__stdcall
    WORD typedef unsigned short WORD --> (0 ~ 65535)
    WPARAM typedef UINT_PTR WPARAM
    UINT_PTR #if defined(_WIN64)<br/> typedef unsigned__int64 UINT_PTR;<br/>#else<br/> typedef unsigned int UINT_PTR;<br/>#endif
    LPARAM typedef LONG_PTR LPARAM
    LONG_PTR #if defined(_WIN64)<br/> typedef __int64 LONG_PTR;<br/>#else<br/> typedef long LONG_PTR;<br/>#endif

 

혹시 제가 잘못 이해한 부분이(잘못된 정보) 있다면 알려주시면 감사하겠습니다 :)