728x90
'나우캠퍼스X아워즈팜'유튜브의 'Win32 API 1강. 윈도우 데이터형 (3/3)'영상을 보고 정리한 내용입니다.
추가로 INSTANCE와 HANDLE의 차이점 <- 이 글도 읽어보았고, 참고해서 적은 부분이 있습니다.(핸들 부분)
우리의 운영체제는 멀티 태스킹(multi tasking) 운영체제 즉, 여러 프로그램을 동시에 실행할 수 있게 되어있습니다. 그런데 같은 프로그램의 데이터를 운영체제에서 구별하려면 어떻게 해야할까요?? 바로 '인스턴스(Instance)'와 '핸들(Handle)'로 구별할 수 있습니다.
운영체제가 응용 프로그램을 실행하거나 구분할 때 인스턴스와 핸들을 이용합니다.
인스턴스와 핸들 또한 결국 '값'입니다. 그렇기 때문에 데이터를 저장할 공간이 필요하고, 그래서 데이터형이 반드시 필요합니다.
데이터형은 결국 void*형(4바이트의 양의 정수값이며 메모리 주소를 저장한다.)입니다.
인스턴스
- 응용 프로그램의 아이디(중복되는 것 없다. os가 할당해준 응용프로그램의 아이디)
- 같은 종류의 프로그램은 같은 인스턴스를 가진다.
핸들
- 운영체제에서 할당한 중복되지 않는 자원의 값들(윈도우, 펜, 브러쉬 등)이 할당된다. 그 값, 즉 핸들을 이용하여 운영체제의 자원을 다룰 수 있다.(자원을 빌려서 사용하는?) 한마디로 핸들은 운영체제에서 생성된 자원들을 제어하기 위한 정수값이다.
- os의 자원을 사용할 때 사용!
- 구체적으로 무엇인가를 다룰 때에 사용
- 많이 사용되는 핸들이 가장 중요하다 할 수 있으며 핸들의 값을 저장하기 위한 데이터형은 void*형이라는 것을 꼭 기억해 두어야 한다.
인스턴스, 핸들 모두 운영체제에서 할당하며 중복되는 값은 없도록 할당한다는 공통점이 있다.
헝가리언 표기법
- 의미를 알 수 있도록 변수명, 함수명, 등의 이름을 짓는 것
- 의미 있는 단어를 연결 -> ex) User + Name = UserName
- 데이터형을 알 수 있도록 접두사 붙이기 -> ex) fValue
- 접두사를 붙이는 예
데이터형 | 접두사 | 예 |
BOOL | b | bValue |
char | c, ch | cValue |
float | f | fValue |
int, short | i, n | nValue |
배열 | a | aValue[10] |
DWORD | dw | dwValue |
문자열 | sz, s, str | szValue |
포인터 | p | pValue |
핸들 | h | hValue |
전역변수 | g_ | g_fValue |
윈도우 메시지 | msg | msgMessage |
혹시 제가 잘못 이해한 부분이(잘못된 정보) 있다면 알려주시면 감사하겠습니다 :)
'무작정 따라해보기(정리, 문제풀기) > Win32API' 카테고리의 다른 글
6. Win32 API 프로그래밍 (0) | 2021.08.09 |
---|---|
5. Win32 API 프로그래밍 (0) | 2021.08.04 |
4. Win32 API 프로그래밍 (0) | 2021.08.01 |
2. Win32 API 프로그래밍 (0) | 2021.07.29 |
1. Win32 API 프로그래밍 (0) | 2021.07.27 |