Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.02.2013, 21:49   #1
calypso
Форумчанин
 
Регистрация: 02.12.2012
Сообщений: 250
По умолчанию Работа с GetLastError

Пользоваться этой функцией стал недавно,отсюда несколько глупых детских вопросов:
1. Справедливо ли утверждение,что если GetLastError<>0 то последняя API функция отработала неверно и дальше продолжать программу нет смысла?
2. Как сделать чтобы вместо кода выводилось описание ошибки? Вместо 0 ERROR_SUCCESS т.д. Вручную можно прочитать в файле winerror.h ,но это какой-то совсем уж способ для блондинок.
calypso вне форума Ответить с цитированием
Старый 27.02.2013, 22:02   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

1)проверять результат функций надо.
в мсдн расписано все.
2) http://msdn.microsoft.com/ru-RU/libr...(v=vs.85).aspx
Цитата:
To obtain an error string for system error codes, use the FormatMessage function. For a complete list of error codes provided by the operating system, see System Error Codes.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 27.02.2013, 23:38   #3
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

В отладчике Visual Studio есть псевдопеременная err которая выводит значение GetLastError().
Если дописать суффикс hr выводит текст а не код:
err,hr
waleri вне форума Ответить с цитированием
Старый 28.02.2013, 13:31   #4
rlib
Форумчанин
 
Аватар для rlib
 
Регистрация: 22.05.2012
Сообщений: 352
По умолчанию

Список ошобок с описанием

http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
rlib вне форума Ответить с цитированием
Старый 01.03.2013, 23:04   #5
calypso
Форумчанин
 
Регистрация: 02.12.2012
Сообщений: 250
По умолчанию

А почему вызов GetLastError после таких функций как GetFileSize выдает код 87 (неверный параметр),притом что сама GetFileSize успешно получила размер?
calypso вне форума Ответить с цитированием
Старый 02.03.2013, 09:09   #6
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Функция называется GetLastError а не GetLastResult.
В документации все написано прямым текстом:

Цитата:
The Return Value section of the documentation for each function that sets the last-error code notes the conditions under which the function sets the last-error codeMost functions that set the thread's last-error code set it when they fail. However, some functions also set the last-error code when they succeed
waleri вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
GetLastError WizarD.89 Общие вопросы C/C++ 1 30.01.2012 00:32
Ошибки. GetLastError() maxflint Win Api 2 17.04.2011 16:45
Задача. Работа с псевдослучайными последовательностями (ПСП). Работа с цветом. 0101 Помощь студентам 3 17.12.2009 23:57
Работа с webbrowser - Фреймы, работа с конкретным феймом в фрейме NewDelphi Фриланс 2 08.10.2009 11:00