Создание собственного HRESULT?

У меня уже есть проект, который использует много COM и HRESULTS. Так или иначе я задавался вопросом, возможно ли определить Ваш собственный HRESULT И смочь использовать FormatMessage () для нашего собственного HRESULT?

Я вырыл вокруг и ничего не могу найти. Какие-либо идеи?

Править

В основном я хочу определить ряд моего собственного HRESULTs вместо того, чтобы просто возвратить E_FAIL. Или один из других универсальных. Как E_FAIL прекрасен. Но скажем, я хочу указать, что, например, разрушенной подсистемой Обработки геоданных или файл является недопустимое Растровое изображение. Приложение уже использует COM всюду по нему.

16
задан R.J. Dunnill 1 October 2019 в 00:16
поделиться

1 ответ

Да, конечно. Обычно вы создаете .mc файл и включаете его в свой проект. Укажите компилятору mc его сборку - это создает файл заголовка и файл .rc. HRESULTS определены в файле заголовка. Вы включаете .rc-файл в свой проект, как обычно, для компиляции компилятора ресурсов - это помещает определения сообщений в ваш последний модуль. Затем вы можете использовать обычные функции FormatMessage для форматирования сообщений с использованием HRESULTS и генерации информации об ошибках и прочего.

У меня это как командная строка для одного из моих файлов .mc:

mc   -h "../include" -r "../include" "..\include\errors.mc"

Это создает errors.rc и errors.h в подключаемом каталоге. Затем я сделал:

#include "errors.rc"

в моем основном файле .rc для проекта.

Файл .mc выглядит примерно так:

LanguageNames=(English=0x409:MSG00409)

MessageId=0x1
SymbolicName=SOME_CATEGORY
Language=English
Some Category
.

MessageID=
Severity=Error
SymbolicName=ERROR_INVALID_PROP_INDEX

Language=English
Invalid property index %1
.

с большим количеством определенных номеров ошибок.

14
ответ дан 30 November 2019 в 22:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: