下载MetaTrader 5
MQL5参考语言基础预处理程序输入函数 (#import) 

输入函数 (#import)

函数从MQL5编译模板(*.ex5 文件)和执行系统文件模板(文件 *.dll)通过。模板名称被指定在#import指令中。能够正确形成输入函数的编译器调用和组织适当的参数传送,需要带有完整的函数描述部分。函数描述会立即按照#import “模板名称”执行。新的#import命令完成引入输入函数描述部分。

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

输入函数可以有几个名称。相同名称不同的模块的函数可以同时输入。输入函数名与嵌入函数名一致。范围解析操作决定需要调用哪个函数。

搜索 #import 关键字后指定文件的命令描述在调用导入函数

因为引入函数是在模块外面被编写,编译器无法检查通过参量的正确性。因此,为避免运行错误, 它必须精确地描述传送到输入函数的参数的组成和命令。传到输入函数的参数(从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

在mql5 程序执行期间输入函数,需要使用前期绑定。 这就意味着ex5程序加载时启动资料库。

不建议使用Drive:\Directory\FileName.Ext加载模块的权限定名。MQL5资料库会从 terminal_dir\MQL5\Libraries文件夹中加载。

另见

包括文件


更新: 2015.12.03