[英]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.