MetaTrader 5 herunterladen

Import der Funktionen (#import)

Import der Funktionen wird von kompilierten Moduls MQL5 (Dateien *.ex5) und aus Moduls des Operationssystems (Dateien *.dll) durchgeführt. Modulname wird in der befehlenden Anweisung #import angegeben. Damit der Compiler den Aufruf der importierenden Funktion richtig durchführen und richtige Parameterübergabe gestalten kann, ist völlige Beschreibung der Funktionen notwendig. Funktionsbeschreibungen folgen unmittelbar der befehlenden Anweisung #import "Modulname". Neuer Befehl #import (möglich auch ohne Parameter) beendet Beschreibungsblock der importierender Funktionen.

#import "Dateiname"
    func1 define;
    func2 define;
    ...
    funcN define;
#import

Zu importierende Funktionen können verschiedene Namen haben. Importiert kann aus verschiedenen Modulen der Funktion mit gleichen Namen gleichzeitig werden. Zu importierende Funktionen können Namen haben, die mit den Namen interner Funktionen zusammenfallen. Operation von Kontexterlaubnis bestimmt, welche Funktion aufgerufen muss.

Die Suchreihenfolge nach der Datei, die nach der Schlüsselwort #import angegeben ist, ist in der Sektion Aufruf der Importfunktionen beschrieben.

Da sich zu importierende Funktionen ausser compilierten Moduls befinden, kann der Compiler Richtigkeit der übertragenen Parameter nicht prüfen. Darum um  Ausführungsfehler zu vermeiden muss man genau Inhalt und Ordnung der Parameter beschreiben, die in importierte Funktionen übertragen werden. Parameter, übertragen in importierte Funktionen (sowie aus EX5, als auch aus DLL-Modulen) können Default-Werte haben.

In importierten Funktionen können als Parameter nicht verwendet werden:

In die aus  DLL importierten Funktionen können als Parameter keine Klassen, Zeilenfelder oder komplizierte Objekte übertragen werden, die Zeilen und/oder dynamische Felder verschiedener Typen enthalten.

Beispiele:

#import "user32.dll"
int    MessageBoxW(uint hWnd,string lpText,string lpCaption,uint uType);
#import "stdlib.ex5"
string ErrorDescription(int error_code);
int    RGB(int red_value,int green_value,int blue_value);
bool   CompareDoubles(double number1,double number2);
string DoubleToStrMorePrecision(double number,int precision);
string IntegerToHexString(int integer_number);
#import "ExpertSample.dll"
int    GetIntValue(int);
double GetDoubleValue(double);
string GetStringValue(string);
double GetArrayItemValue(double &arr[],int,int);
bool   SetArrayItemValue(double &arr[],int,int,double);
double GetRatesItemValue(double &rates[][6],int,int,int);
#import

 

für Importieren der Funktionen während der Durchführung eines mql5-Programms wird frühe Bindung verwendet. Das bedeutet, dass Bibliothek während der Ladung des ex5-Programm geladen wird, das sie verwendet.

Es ist nicht empfehlenswert, den vollständig qualifizierten Namen des geladeten Moduls des Typs Drive:\Directory\FileName.Ext zu verwenden. Bibliotheken MQL5 werden vom Ordner terminal_dir\MQL5\Libraries geladen.

Sehen Sie auch

Include Dateien