下载MetaTrader 5
要添加评论,请登录注册
为什么要在MetaTrader应用商店出售产品?通过该文章找出答案!
Saji
153
Saji 2016.09.05 01:31 

各位前辈:

小弟为了尝试在MQL4环境中测试第三方dll的调用,编写了以下dll

#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <string.h>
#include <time.h>
#include <iostream>

using namespace std;

extern "C" __declspec(dllexport) void HelloWorld();

void HelloWorld()
{
        cout<<"Hello,World!"<<endl;
        getchar();
        //----
        FILE *fp = NULL;
        fp = fopen("d:\\test.txt","w");
        return;
}

以上是个非常简单的dll,执行如下2个动作:

1、在控制台输出hello,world!,然后等待用户输入;

2、在d盘生成一个txt的空文本;

然后,我在MT4终端生成了一个调用该dll的测试脚本,如下:

#property copyright "Saji.Ren"
#property link      "GoldenHeart Investment"

//----------
#import "helloworldDLL.dll"
 void HelloWorld();
#import

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
{
   HelloWorld();
   return(0);
}
//+------------------------------------------------------------------+

我们得到了很有意思的结果:

1、整个过程中没有控制台界面的出现;也没有产生任何报错信息;

2、但是在d盘上生成了test.txt,说明该dll被执行了;

3、我们在退出MT4终端后,立刻查看了终端的log文件,当中记录脚本的加载成功;

我的结论是:该helloworldDLL.dll被成功调用并执行,但是出于某种原因,控制台界面无法跳出。

想请教各位,为何没有控制台界面?如何才能让它出来?


非常感谢,盼回复!

/
要添加评论,请登录注册