외부 함수에 대한 설명

다른 모듈에 정의된 외부 기능은 명시적으로 설명해야 합니다. 설명에는 반환된 유형, 함수 이름 및 입력 매개 변수의 유형이 포함됩니다. 이러한 설명이 없으면 프로그램을 컴파일, 빌드 또는 실행할 때 오류가 발생할 수 있습니다. 외부 개체를 설명할 때 모듈을 나타내는 키워드 #import를 사용합니다.

예제:

#import "user32.dll"
  int     MessageBoxW(int hWnd ,string szText,string szCaption,int nType);
  int     SendMessageW(int hWnd,int Msg,int wParam,int lParam);
#import "lib.ex5"
  double  round(double value);
#import

가져오기 기능을 사용하면 외부 DLL 또는 컴파일된 EX5 라이브러리에서 호출되는 기능을 쉽게 설명할 수 있습니다. 라이브러리 속성을 가진 ex5 파일로 컴파일됩니다. EX5 라이브러리에서는 내보내기 한정자로 설명된 함수만 가져올 수 있습니다.

DLL 및 EX5 라이브러리는 함께 가져올 경우 해당 라이브러리가 위치한 디렉토리에 관계없이 서로 다른 이름을 가져야 합니다. 가져온 모든 함수는 라이브러리의 "파일 이름"에 해당하는 범위 지정을 가집니다.

예제:

#import "kernel32.dll"
   int GetLastError();
#import "lib.ex5"
   int GetLastError();
#import
 
class CFoo
  {
public:
   int            GetLastError() { return(12345); }
   void           func()
     {
      Print(GetLastError());           // class method 호출
      Print(::GetLastError());         // MQL5 함수 호출
      Print(kernel32::GetLastError()); // kernel32.dll에서 DLL 라이브러리 함수 호출
      Print(lib::GetLastError());      // lib.exe5에서 EX5 라이브러리 함수 호출
    }
  };
 
void OnStart()
  {
   CFoo foo;
   foo.func();
  }

더 보기

오버로드, 가상 함수, 다형성