首页 > 解决方案 > MQL 中的“未解决的函数调用”,所有配置都已设置

问题描述

现象:我已经构建了一个库文件,使用该库的EA已经顺利执行了几个月。代码是这样的:

在库文件中:

void MyFunction(int mode)
....

在 EA 中:

#import "MyLibrary.ex4"
    void MyFunction(int mode);
#import
......
MyFunction(1);

现在我打开了一个新脚本,调用Test.mq4并在我的 EA 中复制并粘贴相关代码。就像:

#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

#import "MyLibrary.ex4"
    void MyFunction(int mode);
#import
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
      MyFunction(1);

  }

执行脚本。总是收到消息:Unresolved function call; Cannot find "Myfunction" in MyLibrary.ex4

这已经发生过几次。一旦我通过打开一个新脚本来解决它,将所有内容复制stdlib.mq4到其中,然后用我自己的代码替换正文,它就可以工作了。但这一次没有。我很好奇它背后有什么问题导致导入失败?

我已经多次重新编译了库、EA 和测试脚本。

标签: mql4

解决方案


最后我做出了解决办法:显式删除你之前编译的ex4文件,然后点击重新编译按钮,就解决了。看来当文件存在时,重新编译文件并不能覆盖我这边出现故障的一些配置,所以你必须找到你的ex4文件的目录并手动删除它。


推荐阅读