Yes of course. Typically you create a .mc file and include that in your project. Instruct the mc compiler to build it - this creates a header file and a .rc file. The HRESULTS are defined in the header file. You include the .rc file in your project as normal for the resource compiler to compile - this puts the message definitions into your final module. Then you can use the normal FormatMessage functions to format the messages using the HRESULTS and generate error info and the other stuff.
I have this as the command line for one of my .mc files:
mc -h "../include" -r "../include" "..includeerrors.mc"
This creates errors.rc and errors.h in the include directory. Then I did:
#include "errors.rc"
in my main .rc file for the project.
The .mc file looks a bit like this:
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
.
with lots of error numbers defined.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…