我已经有一个项目使用了很多COM和HRESULTS.我想知道是否有可能定义你自己的HRESULT,并且能够将FormatMessage()用于我们自己的HRESULT?
我四处乱窜,无法找到任何东西.有任何想法吗?
编辑
基本上我想定义一组我自己的HRESULT,而不是只返回E_FAIL.或者其他通用的.像E_FAIL一样好.但是,我想说,我想指出,例如地理处理子系统崩溃或文件是无效的光栅图像.该应用程序已经通过它使用com.
180*_*ION 14
当然是.通常,您创建一个.mc文件并将其包含在项目中.指示mc编译器构建它 - 这会创建一个头文件和一个.rc文件.HRESULTS在头文件中定义.您可以在项目中包含.rc文件,以便编译资源编译器 - 这会将消息定义放入最终模块中.然后,您可以使用普通的FormatMessage函数使用HRESULTS格式化消息,并生成错误信息和其他内容.
我将此作为我的.mc文件的命令行:
mc -h "../include" -r "../include" "..\include\errors.mc"
Run Code Online (Sandbox Code Playgroud)
这会在include目录中创建errors.rc和errors.h.然后我做了:
#include "errors.rc"
Run Code Online (Sandbox Code Playgroud)
在我项目的主.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
.
Run Code Online (Sandbox Code Playgroud)
定义了大量错误编号.
| 归档时间: |
|
| 查看次数: |
3969 次 |
| 最近记录: |