簡體   English   中英

創建自己的HRESULT?

[英]Creating your own HRESULT?

我已經有一個項目使用了很多COM和HRESULTS。 我想知道是否有可能定義你自己的HRESULT,並且能夠將FormatMessage()用於我們自己的HRESULT?

我四處亂竄,無法找到任何東西。 有任何想法嗎?

編輯

基本上我想定義一組我自己的HRESULT,而不是只返回E_FAIL。 或者其他通用的。 像E_FAIL一樣好。 但是,我想說,我想指出,例如地理處理子系統崩潰或文件是無效的光柵圖像。 該應用程序已經通過它使用com。

當然是。 通常,您創建一個.mc文件並將其包含在項目中。 指示mc編譯器構建它 - 這會創建一個頭文件和一個.rc文件。 HRESULTS在頭文件中定義。 您可以在項目中包含.rc文件,以便編譯資源編譯器 - 這會將消息定義放入最終模塊中。 然后,您可以使用普通的FormatMessage函數使用HRESULTS格式化消息,並生成錯誤信息和其他內容。

我將此作為我的.mc文件的命令行:

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

這會在include目錄中創建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
.

定義了大量錯誤編號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM