프날 오토핫키 강좌
누르면 강좌 리스트가 나와요
프날 오토핫키 강좌

⚠ 이 강좌는 오토핫키 v1을 다룹니다

지금 보시는 강좌는 구버전 오토핫키(v1.1)를 다루고 있습니다. 따라서 본 강좌의 내용은 현재 최신 오토핫키 버전 (v2.0)과 호환되지 않습니다. 구버전의 정보가 필요한 것이 아니라면, 가능한 한 새로운 사이트에 작성한 v2 강좌(https://ahkv2.pnal.dev)를 봐주시길 바랍니다.

[프날 오토핫키] GDI+ (gdip) #3: 초기화와 정리

초기화(Initialize)

GDI+의 기능들을 사용하기 위해선 우선 GDI+를 초기화(Initialize)해야합니다. "나 이제부터 GDI+ 쓴다..!!"라고 알리는 역할입니다. 초기화 후에 GDI+의 기능들을 사용할 수 있습니다.

 

gdip에서 GDI+를 초기화 하는 함수는 Gdip_StartUp()입니다.

매개 변수는 없으며, 고유한 숫자인 '토큰'이 담긴 메모리 주소를 반환합니다.

이 '토큰'의 사용처는 뒤에 설명드리겠습니다.

 

#include Gdip_All.ahk
pToken := Gdip_StartUp()

Gdip_StartUp함수를 매개변수 없이 호출했고, 반환값을 pToken에 담았습니다.

토큰의 값은 아무 의미 없는 수로 이루어져있고, 실제적으로 pToken 변수엔 토큰의 값이 아닌, 값이 담긴 메모리 주소가 들어가있습니다.

 

즉, 포인터 변수의 의미로 사용하였습니다. 포인터 변수는 '값'이 직접 담긴 변수가 아닌, 값을 가지고 있는 '메모리 주소'가 담긴 변수라는 뜻입니다. 앞으로 자주 쓸 말이니 알아주세요.

 

따라서 p를 접두어로 하여 pToken이라고 변수명을 설정해보았습니다.

 

한번 MsgBox로 pToken의 값을 출력해보세요.

아마 몇 자리의 정수가 나올 것입니다. 이것이 토큰의 값이 저장된 메모리의 주소입니다.

 

토큰이란게 왜 있냐고요? GDI+ 만든 사람에게 물어보세요.

다만 이 '토큰'은 별로 중요하지 않습니다. 아래 설명할 '종료'과정에서만 쓰입니다.


 정리(Clean Up) 

GDI+ 사용이 끝났으면, GDI+에서 사용한 각종 자원들을 없애 줄 필요가 있습니다.

즉, 사용했던 흔적들을 모두 없애는 '정리(Clean Up)'과정을 반드시 해주셔야합니다.

 

GDI+를 종료하기 위해서는 Gdip_Shutdown()함수를 사용합니다.

Gdip_StartUp()함수와 반대로, 반환 값은 없고 매개변수가 있습니다.

매개변수는 '토큰'의 메모리 주소(pToken)를 받습니다. 아래처럼 말입니다.

#include Gdip_All.ahk
pToken := Gdip_StartUp()
Gdip_Shutdown(pToken)
ExitApp

두번째 줄에서 GDI+를 초기화 했고, 세번째 줄에서 GDI+를 종료했습니다. (시작과 끝입니다.)

토큰의 메모리 주소가 담겨있는 pToken을 매개 변수로 가진 모습을 볼 수 있습니다.

 

물론, 변수에 불과하기 때문에 변수명은 자유롭게 하셔도 됩니다.


 시작과 끝은 중요합니다! 

GDI+를 시작할땐 Gdip_StartUp()을 통해 토큰의 주소를 받아두고

GDI+를 종료할땐 Gdip_Shutdown()을 통해 토큰과 각종 리소스를 반환하세요.

 

즉, 여러분이 앞으로 쓰실 모든 gdip 라이브러리의 함수는 초기화와 정리 구문 사이에 있어야 합니다.

 


 이번 강에서의 gdip 함수 

Gdip_StartUp()

매개변수: 없음
반환 값: 토큰의 주소
Gdip_Shutdown()

매개변수: 토큰의 주소
반환 값: 없음