我已经有一个项目使用了大量的COM和HRESULTS。无论如何,我想知道是否有可能定义您自己的HRESULT,并且能够为我们自己的HRESULT使用FormatMessage()?
我到处翻找,什么也找不到。有什么想法吗?
编辑
基本上,我想定义一组我自己的HRESULT,而不仅仅是返回E_FAIL。或者是其他普通的。比如E_FAIL就可以了。但是假设我想指出的是,例如,地理处理子系统崩溃或文件是无效的Raster Image。应用程序自始至终都在使用COM。
发布于 2009-10-05 23:16:49
当然可以。通常,您会创建一个.mc file并将其包含在项目中。指示mc compiler构建它-这将创建一个头文件和一个.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
.定义了很多错误号。
https://stackoverflow.com/questions/1522853
复制相似问题