繁体   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