Beschreibung der Aussenfunktionen

Die externe Funktionen, die in einem anderen Modul definiert sind, sollen explizit beschrieben werden. Die Beschreibung enthält einen Rückgabetyp, den Funktionsnamen und eine Reihe von Eingabeparametern mit ihren Typen. Fehlen solcher Beschreibung kann zu Fehlern bei der Compilierung, Verknuepfung oder Programmverarbeitung führen. Bei der Beschreibung des Aussenobjektes verwenden Sie Schluesselwort  werden #import mit dem Modulandeutung.

Beispiele:

#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

Mittels des Imports kann man sehr einfach Funktionen beschreiben, aufgerufen von externen DLL oder kompilierten EX5 Bibliotheken. Bibliotheken EX5 sind kompilierte ex5-Dateien, die die Eigenschaft library haben. Aus  EX5 Bibliotheken können nur Funktionen importiert werden, die mit dem Modifikator export beschrieben werden.

Bei der gemeinsame Nutzung der DLL und EX5-Bibliotheken erinnern Sie daran, dass die Bibliotheken verschiedene Namen (unabhängig von Platzierung ihrer Verzeichnisse) haben müssen. Alle importierten Funktionen erhalten Scope "Dateiname" der Bibliothek.

Beispiel:

#import "kernel32.dll"
   int GetLastError();
#import "lib.ex5"
   int GetLastError();
#import
 
class CFoo
  {
public:
   int            GetLastError() { return(12345); }
   void           func()
     {
      Print(GetLastError());           // Aufruf der Klassenmethode
      Print(::GetLastError());         // Aufruf der MQL5-Funktion
      Print(kernel32::GetLastError()); // Aufruf der Funktion kernel32.dll
      Print(lib::GetLastError());      // Aufruf der Funktion lib.ex5
     }
  };
 
void OnStart()
  {
   CFoo foo;
   foo.func();
  }

Sehen Sie auch

überladen,Virtuelle Funktionen, Polymorphismus