诚信为本
量力而为
当前位置:峰汇在线 > MQL语言 > MQL5编程参考文档 > 正文

1.5.5 外部函数描述

在其它模块中定义的外部函数必须明确描述。描述应包括返回类型, 函数名称和输入参数序列以及它们的类型。这些描述缺失则会在编译、整编,或执行程序时导致错误。当描述一个外部对象时, 使用关键字 #import 来指明模块。

例如:

#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

在 import 的辅助下,很容易对即将从外部 DLL 或预编译的 EX5 程序库里调用的函数进行描述。EX5 程序库被编译为 ex5 文件, 它具有 library (库文件) 属性。仅当函数以 export (导出) 修饰符 描述后才可从 EX5 程序库里导入。

请留意, 如果 DLL 和 EX5 程序库需要一同导入, 则它们应具有不同的名称 (无论它们位于哪个目录里)。所有导入函数的解析域都与程序库的“文件名”对应。

例如:

#import "kernel32.dll" 
int GetLastError(); 
#import "lib.ex5" 
int GetLastError(); 
#import 

class CFoo 
{ 
public: 
int GetLastError() { return(12345); } 
void func() 
{ 
Print(GetLastError()); // 调用类方法 
Print(::GetLastError()); // 调用 MQL5 函数 
Print(kernel32::GetLastError()); // 从 kernel32.dll 里调用 DLL 库函数 
Print(lib::GetLastError()); // 从 lib.ex5 里调用 EX5 库函数 
} 
}; 

void OnStart() 
{ 
CFoo foo; 
foo.func(); 
}
打赏
版权所有转载请注明标题及链接:峰汇在线 » 1.5.5 外部函数描述
上一篇:
下一篇:
分享到: 更多 (0)

如您觉得此文不错请扫码打赏!

支付宝扫一扫打赏

微信扫一扫打赏