下载MetaTrader 5

“MetaTrader已停止工作”,求解!!!

要添加评论,请登录注册
发表 您的文章,全世界数以千计的人们都将阅读它!
tiankong
37
tiankong 2015.06.05 10:46 

最近遇到了这个问题:

 MT4客户端调用dll(VC++)进行socket通信(获取数据并显示在图表之上),在dll接口函数里开了一个线程等待并接收数据(当套接字有数据到来时,接收数据并返回给MT4客户端),当把图表窗口关闭以后,如果发送端继续发送数据,此时MT4客户端就会出现如下情况:

 

  

 

 当把图表窗口关闭,MT4的MQL程序(脚本或EA)执行结束,但其调用的dll接口函数所开的线程并没有退出, 如果此时发送端再与该线程通信,就会出现以上情况;若能在图表窗口被关闭之前退出该线程,就不会导致MT4客户端崩溃。问题在于图表窗口被关闭之前,MT4客户端能否做到通知dll所开线程退出?即有没有对图表窗口关闭事件的响应?


Jian Chen
版主
3621
Jian Chen 2015.06.07 01:34  

有的,就是OnDeinit()函数。

OnDeinit()函数会在多种情况下被调用,如果你还特别需要针对图表窗口关闭,可以判断 reason==4(REASON_CHARTCLOSE).

详细的你可以查下MQL4帮助文件 .

Jinping Ou
280
Jinping Ou 2015.06.11 17:57  
tiankong:

最近遇到了这个问题:

 MT4客户端调用dll(VC++)进行socket通信(获取数据并显示在图表之上),在dll接口函数里开了一个线程等待并接收数据(当套接字有数据到来时,接收数据并返回给MT4客户端),当把图表窗口关闭以后,如果发送端继续发送数据,此时MT4客户端就会出现如下情况:

 

  

 

 当把图表窗口关闭,MT4的MQL程序(脚本或EA)执行结束,但其调用的dll接口函数所开的线程并没有退出, 如果此时发送端再与该线程通信,就会出现以上情况;若能在图表窗口被关闭之前退出该线程,就不会导致MT4客户端崩溃。问题在于图表窗口被关闭之前,MT4客户端能否做到通知dll所开线程退出?即有没有对图表窗口关闭事件的响应?


       对于楼主所说的这个问题,最近我发现我的账户也是这样,但是仅限于模拟账户,实仓(相同的EA)没出现过这个问题、、、
Jinping Ou
280
Jinping Ou 2015.06.20 04:16  
       现在发现无论什么平台都会出现楼主这种情况,无论有没有挂EA都会如此,估计是是MT4升级后出现的bug、、、
要添加评论,请登录注册