具体是这样的:
MetaTrader是一款可编程的交易端(在其上编写的程序称为MQL程序),terminal.exe是MetaTrader的进程,MQL程序调用dll(VC++)进行网络通信(获取数据并显示在K线图表之上),在dll接口函数里开了一个线程等待并接收数据(当套接字有数据到来时,接收数据并返回给MQL程序),当把图表窗口关闭,如果发送端继续发送数据,此时交易端就会出现如下情况:
关闭程序后查看Windows日志,有下面两条:
错误应用程序名称: terminal.exe,版本: 4.0.0.840,时间戳: 0x00ad7e00
错误模块名称: MSVCR100.dll_unloaded,版本: 0.0.0.0,时间戳: 0x4df2be1e
异常代码: 0xc0000005
错误偏移量: 0x6b26b65a
错误进程 ID: 0xe50
错误应用程序启动时间: 0x01d0aef99d666574
错误应用程序路径: C:\Program Files\FXCM MetaTrader 4\terminal.exe
错误模块路径: MSVCR100.dll
报告 ID: 103b0472-1aed-11e5-ba83-d027884f6667
错误应用程序名称: terminal.exe,版本: 4.0.0.840,时间戳: 0x00ad7e00
错误模块名称: Receive.dll_unloaded,版本: 0.0.0.0,时间戳: 0x558b792b
异常代码: 0xc0000005
错误偏移量: 0x5b791310
错误进程 ID: 0xe50
错误应用程序启动时间: 0x01d0aef99d666574
错误应用程序路径: C:\Program Files\FXCM MetaTrader 4\terminal.exe
错误模块路径: Receive.dll
报告 ID: 134ef7ab-1aed-11e5-ba83-d027884f6667