Составление пользовательских функций со стандартной обработкой ошибок
При составлении пользовательских функций со стандартной обработкой ошибок необходимо:
1. Сформировать код ошибки, при этом в качестве кода можно выбрать стандартный код (см. файл WINERROR.H). Если среди кодов нет подходящего, то сформировать свой и определить его в своем заголовочном файле.
2. В функции перед возвратом обратитьсяк функции SetLastError. Заголовок функции :
VOID SetLastError (DWORD dwCode),
Где dwCode – код ошибки.
Именно этот код будет возвращен функцией GetLastError
Пример. Пусть необходимо возвратитькод: Недостаточно памяти (ERROR_NOT_ENOUGH_MEMORY)
#include <windows.h>
bool MyFun (){
SetLastError (ERROR_NOT_ENOUGH_MEMORY);
return false;
}
int main(int argc, char* argv[])
{
bool b = MyFun ();
if (!b){
LPVOID lpMsgBuf;
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &lpMsgBuf, 0, NULL );
MessageBox( NULL, (char*)lpMsgBuf, "GetLastError",MB_OK|MB_ICONINFORMATION);
LocalFree( lpMsgBuf );
}
return 0;
}
Приведенный код программы выведен сообщение о недостающей памяти, на языке, принятом по умолчанию для операционной системы.