Creating your own HRESULT?

后端 未结 1 1729
心在旅途
心在旅途 2020-12-15 21:00

I already have a project that uses a lot of COM, and HRESULTS. Anyways I was wondering if it\'s possible to define your own HRESULT, AND be able to use the FormatMessage() f

1条回答
  •  借酒劲吻你
    2020-12-15 21:12

    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" "..\include\errors.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.

    0 讨论(0)
提交回复
热议问题