gpt4 book ai didi

c# - HRESULT 怎么会出现在 MIDL 文件中?

转载 作者:太空狗 更新时间:2023-10-29 20:31:47 35 4
gpt4 key购买 nike

我正在使用 IDL 文件开发一些 COM 接口(interface)。一些接口(interface)方法返回 HRESULT,但我检查了 MIDL language reference on MSDN ,没有 HRESULT 的线索。那么我在哪里可以找到这种数据类型的官方定义呢?

更新

感谢 Shog9,我在 wtypes.idl 中找到了它。我把它贴在这里以供其他人查看:

    ...
cpp_quote("#ifndef _HRESULT_DEFINED")
cpp_quote("#define _HRESULT_DEFINED")
#if defined(_STRICT_HRESULT)
typedef struct _HRESULT_STRUCT {
DWORD Data1;
} HRESULT_STRUCT, *PHRESULT_STRUCT;
typedef PHRESULT_STRUCT HRESULT;
#else // defined(_STRICT_HRESULT)
cpp_quote("#ifdef __midl")
typedef LONG HRESULT;
...

但是,当我在我的 IDL 文件中显式使用 DWORD 或 LONG 时,MIDL 编译器将报告错误:

"error MIDL2269: procedures in an object interface must return an HRESULT" 

有点可笑...

最佳答案

任何实用的 .idl 文件都应以

开头
import "oaidl.idl";
import "ocidl.idl";

声明基本类型。像 HRESULT 和 VARIANT。等等。

关于c# - HRESULT 怎么会出现在 MIDL 文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3450821/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com