C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 31 - Ошибки при вызове Windows API / Отладка / Visual C++

Шаг 31 - Ошибки при вызове Windows API

Вызывая функции Win 32 API вы передаете какие-то параметры. WindowsMoveWindow. Идея практически похожа для вызова всех функций API. Итак, первоначально многие функции имеют тип BOOL, что позволяет быстро определить успешность вызова. Более подробная информацию можно получить вызвав GetLastError. Получается вот такой псевдокод:

If (MoveWindow(..)!=TRUE)
{
	rez = GetLastError();
}

Почему нельзя вызывать GetLastError после каждой функции не проверяя правильность ее выполнения? Потому, что следующий вызов, если он был успешен, может эту ошибку не очистить. Это первое. В случае же ошибки значение будет переписано, это заставляет проверять сразу после возникновения ошибки во избежании потери данных. Вывод, если функция вернула признак ошибки нужно сразу вызывать GetLastError(). Следующий вопрос, который должен возникнуть это повлияет ли другой поток на возврат GetLastError()? Ответ - нет. Функция GetLastError() возвращает ошибку для данного потока используя механизм известный как локальная память потока. Данная функция возвращает код ошибки. Сами коды ошибки можно посмотреть в WinError.h.

31_1.gif (7656 b)

Этот файл довольно большой и ковыряться в нем не особенно приятно.


| |
Автор Каев Артем.
[AD]