Функция(метод) GrdGetLastError получает код последней ошибки для указанного хэндла.Примечание: данная функция работает с указателями, и ее использование требует компиляции проекта с параметром /unsafe.
Синтаксис
Deck of Cards |
---|
|
title | Card |
---|
| Code Block |
---|
| int GRD_API GrdGetLastError(
HANDLE hGrd,
void **ppLastErrFunc
); |
Expand |
---|
| hGrd | хэндл, из которого нужно получить код ошибки | ppLastErrFunc | указатель на функцию-источник ошибки, должен быть равен NULL если не используется |
|
| Card |
---|
| Code Block |
---|
| public static GrdE GrdGetLastError(
IntPtr GrdHandle,
IntPtr LastErrFunc
) |
Expand |
---|
title | Возвращаемые значения |
---|
| |
|
Card |
---|
| Expand |
---|
title | Возвращаемые значения |
---|
| |
|
|
---|
Expand |
---|
| Функция GrdGetLastError получает код последней ошибки из указанного хэндла. В параметре ppLastErrFunc возвращается указатель на функцию, которая вернула какую-либо ошибку. Например, если не хватило памяти, то функция вернет указатель на VirtualAlloc. Если ошибку сгенерировала функция Guardant API, возвращается NULL, поскольку определить адрес функции нельзя из-за псевдокода. Также NULL возвращается и в других случаях, когда нельзя определить адрес функции-источника ошибки. Для каждого хэндла генерируются свои ошибки. При использовании нескольких хэндлов ошибки одного хендла не перекрывают ошибок для другого. Важная информация. Если заданный хэндл в данный момент используется мультипоточно, то хранящееся в нем значение кода последней ошибки может быть затерто результатом вызова какой-либо функции Guardant API другого потока. В этом случае возможны следующие варианты решения: - Не использовать функцию GrdGetLastError, а вместо нее анализировать непосредственно возвращаемый код возврата каждой функции
- Дополнительно синхронизировать выполнение потоков например через критические секции Win API.
|
|
|
Wiki Markup |
---|
{dojo-tabs:theme=tundra|id=1}
{dojo-tab:title=C|selected=true}
*C*
int GRD_API GrdGetLastError(
HANDLE hGrd,
void **ppLastErrFunc
);
{dojo-tab}
{dojo-tab:title=C#|selected=true}
*C#*
public static GrdE GrdGetLastError( |
|
IntPtr GrdHandle,
IntPtr LastErrFunc
)
{dojo-tab}
{dojo-tab:title=Visual Basic (Declaration)}
*Visual Basic*
Public Shared Function GrdGetLastError ( _
GrdHandle As IntPtr, _
LastErrFunc As IntPtr _
) As GrdE
{dojo-tab}
{dojo-tab:title=Visual C++}
*Visual C++*
public:
static GrdE GrdGetLastError (
IntPtr GrdHandle,
IntPtr LastErrFunc
)
{dojo-tab}
{dojo-tabs} |
Expand |
---|
|
hGrd | хэндл, из которого нужно получить код ошибки | ppLastErrFunc | указатель на функцию-источник ошибки, должен быть равен NULL если не используется |
|
Expand |
---|
| grdHandle [in] Тип: Handle Хэндл, из которого нужно получить код ошибки. |
Expand |
---|
| Метод GrdGetLastError получает код последней ошибки из указанного хэндла. Для каждого хэндла генерируются свои ошибки. При использовании нескольких хэндлов ошибки одного хендла не перекрывают ошибок для другого. Важная информация. Если заданный хэндл в данный момент используется мультипоточно, то хранящееся в нем значение кода последней ошибки может быть затерто результатом вызова какого-либо метода Guardant API другого потока. В этом случае возможны следующие варианты решения: - Не использовать метод GrdGetLastError, а вместо него анализировать непосредственно возвращаемый код возврата каждого метода.
- Дополнительно синхронизировать выполнение потоков например через критические секции Win API.
|
|
Card |
---|
| Code Block |
---|
| public static GrdE GrdGetLastError(Handle grdHandle) |
Expand |
---|
| grdHandle [in] Тип: Handle Хэндл, из которого нужно получить код ошибки. |
|
|
Expand |
---|
|
Cтандартный набор ошибокФункция Метод GrdGetLastError получает код последней ошибки из указанного хэндла |
| . В параметре ppLastErrFunc возвращается указатель на функцию, которая вернула какую-либо ошибку. Например, если не хватило памяти, то функция вернет указатель на VirtualAllocЕсли ошибку сгенерировала функция Guardant API, возвращается NULL, поскольку определить адрес функции нельзя из-за псевдокода. Также NULL возвращается и в других случаях, когда нельзя определить адрес функции-источника ошибки. Для каждого хэндла генерируются свои ошибки. При использовании нескольких хэндлов ошибки одного хендла не перекрывают ошибок для другого. Важная информация. Если заданный хэндл в данный момент используется мультипоточно, то хранящееся в нем значение кода последней ошибки может быть затерто результатом вызова |
| какой функции метода Guardant API другого потока. В этом случае возможны следующие варианты решения: |
| функцию - метод GrdGetLastError, а вместо
|
| нее - него анализировать непосредственно возвращаемый код возврата
|
| каждой функции- каждого метода.
- Дополнительно синхронизировать выполнение потоков например через критические секции Win API.
|
|
|
...
...