2013-08-18 5 views
0

Есть ли API для перевода ExceptionCode: s в ExceptionRecord на чтение, например FormatMessage, для регулярных ошибок.Получить описание от ExceptionCode

+0

Да, FormatMessage(). Коды исключений, однако, обычно представляют собой коды ошибок операционной системы, а не коды ошибок winapi. Поэтому вам понадобится FORMAT_MESSAGE_FROM_HMODULE и передать обработчик модуля из GetModuleHandle (L "ntdll.dll"). Необходимый параметр FORMAT_MESSAGE_IGNORE_INSERTS, однако, является затруднительным. –

ответ

0

Для этого нет встроенной функции.

Многие люди делают это вручную:

fostlib::exceptions::structured::structured в: http://svn.felspar.com/public/fost-base/tags/4.12.12.44490/fost-base/Cpp/fost-core/exception-win.cpp

MyUnHandledExceptionFilter в: http://openholdembot.googlecode.com/svn/trunk/ManualMode/debug.cpp

GetExceptionString в: http://subversion.assembla.com/svn/ub-source113/Standard%20Gaming%20Platform/ExceptionHandling.cpp

+0

или некоторая генерация кода #!/Bin/sh echo "const size_t N_MESSAGES = $ (grep 'STATUS_' 'D: \ bin-win64 \ mingw64 \ x86_64-w64-mingw32 \ include \ winnt.h' | wc -l); ">> seh.stub echo" Исключение исключенийName [] = ">> seh.stub echo" \t {">> seh.stub grep" STATUS_ "" D: \ bin-win64 \ mingw64 \ x86_64-w64-mingw32 \ include \ winnt.h "\ | sed 's/# define \ (. * \) ((DWORD) \ (. * \))/\ t {\ 2, STR (" \ 1 ")},/g '| sort >> seh.stub echo" \t}; " >> seh.stub – user877329

 Смежные вопросы

  • Нет связанных вопросов^_^