Поделиться через


код Last-Error

При возникновении ошибки большинство системных функций возвращают код ошибки, обычно 0, NULLили –1. Многие системные функции также задают дополнительный код ошибки, называемый код последней ошибки. Этот код ошибки поддерживается отдельно для каждого запущенного потока; Ошибка в одном потоке не перезаписывает код последней ошибки в другом потоке. Любая функция может вызывать функцию SetLastError или SetLastErrorEx, чтобы задать код последней ошибки для текущего потока. Эти функции предназначены в первую очередь для библиотек динамической компоновки (DLL), поэтому они могут предоставлять сведения вызывающему приложению. Обратите внимание, что некоторые функции вызывают SetLastError или SetLastErrorEx с 0 при успехе, стирая код ошибки, установленный последней неудачной функцией, в то время как другие этого не делают.

Приложение может получить код последней ошибки с помощью функции GetLastError; Код ошибки может рассказать больше о том, что на самом деле произошло для сбоя функции. Документация по системным функциям будет указывать условия, при которых функция задает код последней ошибки.

Система определяет набор кодов ошибок, которые можно задать как коды последней ошибки или возвращать этими функциями. Коды ошибок — это 32-разрядные значения (бит 31 — самый значительный бит). Бит 29 зарезервирован для кодов ошибок, определенных приложением; в этом битовом наборе отсутствует системный код ошибки. Если вы определяете коды ошибок для приложения, задайте этот бит, чтобы указать, что код ошибки определен приложением, и убедитесь, что коды ошибок не конфликтуют с системными кодами ошибок. Дополнительные сведения см. в файле WinError.h и в кодах системных ошибок .