路路发智能交易研发中心

 找回密码
 立即注册
查看: 3885|回复: 0

MT4智能交易编程教程-输入函数 (#import)

  [复制链接]

管理员

MT4软件工程师

Rank: 9Rank: 9Rank: 9

积分
6521
帖子
2771
主题
2761
QQ
发表于 2014-3-26 22:17:04 | 显示全部楼层 |阅读模式
MT4智能交易编程教程-输入函数 (#import)
函数从MQL5编译模板(*. ex5 文件)和执行系统文件模板(文件 *. dll)通过。模板名称被指定在#import指令中。能够正确形成输入函数的编译器调用和组织适当的参数传送,需要带有完整的函数描述部分。函数描述会立即按照#import “模板名称”执行。新的#import命令完成引入输入函数描述部分。
  1. #import "file_name"
  2.     func1 define;
  3.     func2 define;
  4.     ...
  5.     funcN define;
  6. #import

复制代码
输入函数可以有几个名称。相同名称不同的模块的函数可以同时输入。输入函数名与嵌入函数名一致。范围解析操作决定需要调用哪个函数。
The order of searching for a file specified after the #import keyword is described in Call of Imported Functions.
因为引入函数是在模块外面被编写,编译器无法检查通过参量的正确性。因此,为避免运行错误, 它必须精确地描述传送到输入函数的参数的组成和命令。传到输入函数的参数(从EX5,和从DLL-模块)可以有默认值。
以下在输入函数中不能用作参数:
·指针 (*);
·连接动态数组或者指针的对象。
类,字符串数组或者包括字符串或者动态数组的复合对象不能作为参数传送到DLL输入函数。
示例:
  1. #import "user32.dll"
  2. int    MessageBoxW(uint hWnd,string lpText,string lpCaption,uint uType);
  3. #import "stdlib.ex5"
  4. string ErrorDescription(int error_code);
  5. int    RGB(int red_value,int green_value,int blue_value);
  6. bool   CompareDoubles(double number1,double number2);
  7. string DoubleToStrMorePrecision(double number,int precision);
  8. string IntegerToHexString(int integer_number);
  9. #import "ExpertSample.dll"
  10. int    GetIntValue(int);
  11. double GetDoubleValue(double);
  12. string GetStringValue(string);
  13. double GetArrayItemValue(double &arr[],int,int);
  14. bool   SetArrayItemValue(double &arr[],int,int,double);
  15. double GetRatesItemValue(double &rates[][6],int,int,int);
  16. #import

复制代码





外汇智能交易,成就财富梦想!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


MT4编程培训|EA定制开发|QQ在线咨询|路路发智能交易研发中心

GMT+8, 2024-12-22 16:48 , Processed in 0.239320 second(s), 26 queries .

© 2009-2022 520EA.com EA668.com

快速回复 返回顶部 返回列表