Функция(метод) GrdGetLastError получает код последней ошибки для указанного хэндла.Примечание: данная функция работает с указателями, и ее использование требует компиляции проекта с параметром /unsafe.
Синтаксис
Deck of Cards |
---|
|
Card |
---|
| Code Block |
---|
| int GRD_API GrdGetLastError(
HANDLE hGrd,
void **ppLastErrFunc
); |
Expand |
---|
| hGrd | хэндл, из которого нужно получить код ошибки | ppLastErrFunc | указатель на функцию-источник ошибки, должен быть равен NULL если не используется |
|
Expand |
---|
| Функция GrdGetLastError получает код последней ошибки из указанного хэндла. В параметре ppLastErrFunc возвращается указатель на функцию, которая вернула какую-либо ошибку. Например, если не хватило памяти, то функция вернет указатель на VirtualAlloc. Если ошибку сгенерировала функция Guardant API, возвращается NULL, поскольку определить адрес функции нельзя из-за псевдокода. Также NULL возвращается и в других случаях, когда нельзя определить адрес функции-источника ошибки. Для каждого хэндла генерируются свои ошибки. При использовании нескольких хэндлов ошибки одного хендла не перекрывают ошибок для другого. Важная информация. Если заданный хэндл в данный момент используется мультипоточно, то хранящееся в нем значение кода последней ошибки может быть затерто результатом вызова какой-либо функции Guardant API другого потока. В этом случае возможны следующие варианты решения: - Не использовать функцию GrdGetLastError, а вместо нее анализировать непосредственно возвращаемый код возврата каждой функции
- Дополнительно синхронизировать выполнение потоков например через критические секции Win API.
|
|
Card |
---|
| Code Block |
---|
| public static GrdE GrdGetLastError(Handle grdHandle) |
Expand |
---|
| grdHandle [in] Тип: Handle Хэндл, из которого нужно получить код ошибки. LastErrFunc [in] Тип: IntPtr Указатель на функцию-источник ошибки. |
Expand |
---|
| Функция Метод GrdGetLastError получает код последней ошибки из указанного хэндла. В параметре ppLastErrFunc возвращается указатель на функцию, которая вернула какую-либо ошибку. Например, если не хватило памяти, то функция вернет указатель на VirtualAlloc.Если ошибку сгенерировала функция Guardant API, возвращается NULL, поскольку определить адрес функции нельзя из-за псевдокода. Также NULL возвращается и в других случаях, когда нельзя определить адрес функции-источника ошибки. Для каждого хэндла генерируются свои ошибки. При использовании нескольких хэндлов ошибки одного хендла не перекрывают ошибок для другого. Важная информация. Если заданный хэндл в данный момент используется мультипоточно, то хранящееся в нем значение кода последней ошибки может быть затерто результатом вызова какойкакого-либо функции метода Guardant API другого потока. В этом случае возможны следующие варианты решения: - Не использовать функцию метод GrdGetLastError, а вместо нее него анализировать непосредственно возвращаемый код возврата каждой функциикаждого метода.
- Дополнительно синхронизировать выполнение потоков например через критические секции Win API.
|
|
Card |
---|
| Code Block |
---|
| public static GrdE GrdGetLastError(Handle grdHandle) |
Expand |
---|
| GrdHandle grdHandle [in] Тип: Handle Хэндл, из которого нужно получить код ошибки. |
Expand |
---|
| Функция Метод GrdGetLastError получает код последней ошибки из указанного хэндла. В параметре ppLastErrFunc возвращается указатель на функцию, которая вернула какую-либо ошибку. Например, если не хватило памяти, то функция вернет указатель на VirtualAlloc.Если ошибку сгенерировала функция Guardant API, возвращается NULL, поскольку определить адрес функции нельзя из-за псевдокода. Также NULL возвращается и в других случаях, когда нельзя определить адрес функции-источника ошибки. Для каждого хэндла генерируются свои ошибки. При использовании нескольких хэндлов ошибки одного хендла не перекрывают ошибок для другого. Важная информация. Если заданный хэндл в данный момент используется мультипоточно, то хранящееся в нем значение кода последней ошибки может быть затерто результатом вызова какойкакого-либо функции метода Guardant API другого потока. В этом случае возможны следующие варианты решения: - Не использовать функцию метод GrdGetLastError, а вместо нее него анализировать непосредственно возвращаемый код возврата каждой функциикаждого метода.
- Дополнительно синхронизировать выполнение потоков например через критические секции Win API.
|
|
|