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

Compare with Current View Page History

« Previous Version 5 Next »

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

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

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

    hGrd

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

    ppLastErrFunc

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

    public static GrdE GrdGetLastError(
    	IntPtr GrdHandle,
    	IntPtr LastErrFunc
    )

     

     

     

     

     

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

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

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

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

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

     

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

    C#
    public static GrdE GrdGetLastError(
    IntPtr GrdHandle,
    IntPtr LastErrFunc
    )

    Visual Basic
    Public Shared Function GrdGetLastError ( _
    GrdHandle As IntPtr, _
    LastErrFunc As IntPtr _
    ) As GrdE

    Visual C++
    public:
    static GrdE GrdGetLastError (
    IntPtr GrdHandle,
    IntPtr LastErrFunc
    )

    hGrd

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

    ppLastErrFunc

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

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

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

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

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

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

     

    Пример для используемого средства разработки см. в директории:

    "\%Program Files%\Guardant\Guardant 6\%PublicCode%\Samples\x86\Win32\General Guardant API\"
    или
    "\%Program Files%\Guardant\Guardant 6\%Public Code%\Samples\x64\Win64\General Guardant API\"

    • No labels