如何在 MQL5 中获取错误消息而不是整数?

How to get an error message instead of an integer in MQL5?

我正在尝试使用 MQL5 中的 OpenCl 获取错误消息。

int     cl_ctx;
if (  ( cl_ctx = CLContextCreate( CL_USE_ANY ) ) == INVALID_HANDLE )
{
      Print( "OpenCL not found: ", GetLastError() );

      float pr  = 2.0 / ( period + 1.0 );
      result[0] = (float)price[position] * pr + prev_value * ( 1 - pr );

      Print(  result[0] );
      return( result[0] );
}

我收到的消息是:

OpenCL not found: 5113

现在我不知道这个5113是什么意思。我如何才能以人类可读的格式获取消息以帮助我有效地调试我的程序?

如果您的代码收到 _LastError == 5113:

记录的 human-readable 解释是这样的:

ERR_OPENCL_TOO_MANY_OBJECTS 5113 Too many OpenCL objects

下次,最好通过 MT5 日志中的 copy/paste 提供几 "surrounding" 行,关于运行时错误事件有更多详细信息。

所有 error-code 定义和解释都保存在文档和 < stderror.mqh > 文件中。

也可以re-readonline documentation辅助。

最后但并非最不重要的是,总是 pre-clear _LastError 调用 ResetLastError()

状态