MT4智能交易编程教程-输入函数 (#import)
函数从MQL5编译模板(*. ex5 文件)和执行系统文件模板(文件 *. dll)通过。模板名称被指定在#import指令中。能够正确形成输入函数的编译器调用和组织适当的参数传送,需要带有完整的函数描述部分。函数描述会立即按照#import “模板名称”执行。新的#import命令完成引入输入函数描述部分。
- #import "file_name"
- func1 define;
- func2 define;
- ...
- funcN define;
- #import
-
复制代码输入函数可以有几个名称。相同名称不同的模块的函数可以同时输入。输入函数名与嵌入函数名一致。范围解析操作决定需要调用哪个函数。 The order of searching for a file specified after the #import keyword is described in Call of Imported Functions. 因为引入函数是在模块外面被编写,编译器无法检查通过参量的正确性。因此,为避免运行错误, 它必须精确地描述传送到输入函数的参数的组成和命令。传到输入函数的参数(从EX5,和从DLL-模块)可以有默认值。 以下在输入函数中不能用作参数: ·指针 (*); ·连接动态数组或者指针的对象。 类,字符串数组或者包括字符串或者动态数组的复合对象不能作为参数传送到DLL输入函数。 示例: - #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
-
复制代码
|