Pull to refresh

Comments 11

Как же всё стало удобнее с появлением IErrorInfo.
ну а я по старинке — WinAPI, и спасибо за IErrorInfo — посмотрю
Оно, увы, только для продвинутых COM-объектов его поддерживающих. Для «деревянных» всё так же приходится использовать FormatMessage.
Глупый вопрос:
Это точно что-то, что следует описывать в статье и чего нет в документации к библиотекам?
Может быть и не следует, но…
1) это список этих функций с примерами, а не их документация
2) к 3 пункту в английском MSDN нет информации, только на японском
Довольно печально осознавать, что для таких функций нужны примеры и не хватает документации… Всё сугубо имхо.
Смысл этой статьи НЕ показать примеры, а рассказать какие функции существуют для получения текста ошибок (ну а примеры в виде дополнения). Просто когда я начинал, я кроме FormatMessage никаких функций не знал, вот решил помочь таким же как я
По поводу второго пункта стоит упомянуть, что его вполне можно использовать в своих библиотеках. Нужно всего лишь упаковать внутрь библиотеки ресурс типа message table.
только в примере тамошнем течь ресурсов (LoadLibrary все ж)… хотя вообще говоря примеры на то и примеры, чтобы не тупо копипастить…
В данном примере LoadLibrary(«ntdll.dll») не вызовет течь. Под NT ntdll.dll и так всегда загружена в процесс. Лишь инкрементирует счетчик загруженной библиотеки. Разве что не эстетично это. Так лучше было бы: GetModuleHandle(«ntdll.dll»).
Можно еще Рихтера упомянуть. Он в самом начале своей книги приводит реализацию функции сообщений об ошибках. А еще в Visual Studio можно в Watch добавить переменную
@err,hr
— она будет показывать код последней ошибки и сообщение. Об этом тоже можно почитать у Рихтера.
Sign up to leave a comment.

Articles