You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 14 Next »

Функция GrdGetLastError получает код последней ошибки для указанного хэндла.

Примечание: данная функция работает с указателями, и ее использование требует компиляции проекта с параметром /unsafe. 

    int GRD_API GrdGetLastError(	
      HANDLE hGrd,
      void **ppLastErrFunc
    );	

    hGrd

    хэндл, из которого нужно получить код ошибки

    ppLastErrFunc

    указатель на функцию-источник ошибки, должен быть равен NULL если не используется

    Функция GrdGetLastError получает код последней ошибки из указанного хэндла. В параметре ppLastErrFunc возвращается указатель на функцию, которая вернула какую-либо ошибку. Например, если не хватило памяти, то функция вернет указатель на VirtualAlloc.

    Если ошибку сгенерировала функция Guardant API, возвращается NULL, поскольку определить адрес функции нельзя из-за псевдокода. Также NULL возвращается и в других случаях, когда нельзя определить адрес функции-источника ошибки.

    Для каждого хэндла генерируются свои ошибки. При использовании нескольких хэндлов ошибки одного хендла не перекрывают ошибок для другого.

    Важная информация. Если заданный хэндл в данный момент используется мультипоточно, то хранящееся в нем значение кода последней ошибки может быть затерто результатом вызова какой-либо функции Guardant API другого потока. В этом случае возможны следующие варианты решения:

    • Не использовать функцию GrdGetLastError, а вместо нее анализировать непосредственно возвращаемый код возврата каждой функции
    • Дополнительно синхронизировать выполнение потоков например через критические секции Win API. 

     

    public static GrdE GrdGetLastError(Handle grdHandle)

    grdHandle [in]

    Тип: Handle

    Хэндл, из которого нужно получить код ошибки.

    Метод GrdGetLastError получает код последней ошибки из указанного хэндла.

    Для каждого хэндла генерируются свои ошибки. При использовании нескольких хэндлов ошибки одного хендла не перекрывают ошибок для другого.

    Важная информация. Если заданный хэндл в данный момент используется мультипоточно, то хранящееся в нем значение кода последней ошибки может быть затерто результатом вызова какого-либо метода Guardant API другого потока. В этом случае возможны следующие варианты решения:

    • Не использовать метод GrdGetLastError, а вместо него анализировать непосредственно возвращаемый код возврата каждого метода
    • Дополнительно синхронизировать выполнение потоков например через критические секции Win API. 
     public static GrdE GrdGetLastError(Handle grdHandle)

    GrdHandle [in]

    Тип: Handle

    Хэндл, из которого нужно получить код ошибки.

    Метод GrdGetLastError получает код последней ошибки из указанного хэндла.

    Для каждого хэндла генерируются свои ошибки. При использовании нескольких хэндлов ошибки одного хендла не перекрывают ошибок для другого.

    Важная информация. Если заданный хэндл в данный момент используется мультипоточно, то хранящееся в нем значение кода последней ошибки может быть затерто результатом вызова какого-либо метода Guardant API другого потока. В этом случае возможны следующие варианты решения:

    • Не использовать метод GrdGetLastError, а вместо него анализировать непосредственно возвращаемый код возврата каждого метода
    • Дополнительно синхронизировать выполнение потоков например через критические секции Win API.

     

     

    • No labels