외부 함수 정의 (external_define)
이 문서는 external_define
함수를 사용하여 특정 DLL(Windows) 또는 dylib(Mac) 파일에 대한 외부 함수 호출을 정의하는 방법에 대해 설명합니다. 이 파일은 포함된 파일이거나 확장의 일부일 수 있습니다.
사용법
- 파일 이름 및 경로: 정의할 DLL 또는 dylib 파일의 이름과 경로를 제공합니다.
- 함수 이름: 정의할 함수의 이름을 입력합니다.
- 호출 규약: 사용할 호출 규약을 정의합니다. (아래 상수 목록 참조)
- 결과 타입: 예상되는 결과의 타입을 정의합니다. (아래 상수 목록 참조)
- 인자 수: 함수가 받을 수 있는 인자의 수를 정의합니다. (0에서 15까지)
- 인자 타입: 각 인자의 타입을 지정합니다. 4개 이상의 인자가 있는 경우, 모든 인자는
ty_real
타입이어야 합니다.
주의: 이 기능은 GameMaker IDE에 "포함된 파일"로 추가된 DLL 또는 dylib에만 해당됩니다. 확장으로 추가된 파일에는 적용되지 않습니다.
외부 호출 타입 상수
상수 | 설명 |
---|---|
dll_cdecl | 기본 C, C++ 호출 |
dll_stdcall | 표준 WinAPI 호출 (Windows 전용) |
외부 데이터 타입 상수
상수 | 설명 |
---|---|
ty_real | 실수형 인자 |
ty_string | 널 종료 문자열 인자 |
문법
external_define(dll, name, calltype, restype, argnumb, argtype[0], argtype[1], ...argtype[10]);
인자 설명
인자 | 타입 | 설명 |
---|---|---|
dll | String | DLL 파일의 이름 |
name | String | 함수의 이름 |
calltype | 외부 호출 타입 상수 | 사용된 호출 규약 |
restype | 외부 데이터 타입 상수 | 예상되는 결과의 타입 |
argnumb | Real | 인자의 수 (0 - 10) |
argtype[0 ... 10] | 외부 데이터 타입 상수 | 사용되는 인자의 타입들 |
반환값
- 외부 함수의 정의를 반환합니다.
예제
my_function = external_define("MyDLL.dll", "MyMin", dll_cdecl, ty_real, 2, ty_real, ty_real);
위의 예제 코드는 "MyMin"이라는 외부 함수를 두 개의 인자를 가진 함수로 정의합니다.
활용 예제
- 간단한 수학 연산
result = external_define("MathLib.dll", "Add", dll_cdecl, ty_real, 2, ty_real, ty_real);
- 문자열 처리
result = external_define("StringLib.dll", "Concat", dll_cdecl, ty_string, 2, ty_string, ty_string);
- 파일 입출력
result = external_define("FileLib.dll", "ReadFile", dll_cdecl, ty_string, 1, ty_string);
- 그래픽 처리
result = external_define("GraphicsLib.dll", "DrawImage", dll_cdecl, ty_real, 4, ty_real, ty_real, ty_real, ty_real);
- 네트워크 통신
result = external_define("NetworkLib.dll", "SendData", dll_cdecl, ty_real, 2, ty_string, ty_real);
이와 같이 external_define
함수를 활용하여 다양한 외부 함수 호출을 정의하고 사용할 수 있습니다.