Как в MQL5 получить сообщение об ошибке вместо целого числа?

Я пытаюсь получить сообщение об ошибке, используя OpenCl в MQL5.

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. Как я могу получить сообщение в удобочитаемом формате, которое поможет мне эффективно отлаживать мою программу?


person Jaffer Wilson    schedule 03.04.2018    source источник


Ответы (1)


Если ваш код получил _LastError == 5113:

задокументированное удобочитаемое объяснение таково:

ERR_OPENCL_TOO_MANY_OBJECTS 5113 Too many OpenCL objects

В следующий раз лучше представить несколько «окружающих» строк путем копирования/вставки из журнала MT5, там больше подробностей, связанных с инцидентом с ошибкой времени выполнения.

Все определения и объяснения кодов ошибок хранятся как в документации, так и в < stderror.mqh > файле.

Также можно перечитать онлайн-документацию помогает.

И последнее, но не менее важное: всегда предварительно очищайте состояние _LastError вызовом ResetLastError().

person user3666197    schedule 03.04.2018
comment
Спасибо за ваш ответ. Это потрясающе.. Да, я забыл освободить объект.. как глупо с моей стороны... :) ;P - person Jaffer Wilson; 03.04.2018
comment
Да-а-а-а, управление ресурсами, управление ресурсами, управление ресурсами... обязательный долг... - person user3666197; 03.04.2018