c++ - MIDL 编译错误 : enum with "cy"

标签 c++ idl midl

我有一个简单的 IDL 文件,它只包含一个 enum。其中一个标识符是 cy

[
  uuid(2642345F-F2AB-3600-8926-26E823800902),
  version(1.0),
]

library MyLib
{
    typedef[ uuid(a0b0aa7b-345f-4b3a-b88f-d6cdd048e205) ]
    enum Codes
    {
       cy, 
       abc
    } Codes;
};

但是,MIDL 不会编译它并给我一个错误,如:

MIDL2025: expecting an identifier near "cy"

我的第一个猜测是 cy 是 MIDL 中的关键字/保留字——但事实并非如此。
我的第二个猜测是 cy 已经在某处使用过或者是一种类型——但事实并非如此。

对这里可能出现的问题有什么想法吗?

最佳答案

根据一些实验,编译器似乎拒绝了 WTypes.h 中不区分大小写的名称。

例如,它还会拒绝这些名称:

byte_blob
bstr
clipdata
decimal
userbitmap
userhbitmap
remhglobal
statflag
...etc...

关于c++ - MIDL 编译错误 : enum with "cy",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27956629/

相关文章:

c++ - 当基类使用它时在类层次结构中使用虚拟

java - Thrift服务默认参数

vba - 为什么 IDL 默认值看起来是四舍五入的?

C++ 公开的属性名称与 IDL 中给出的名称不匹配

c++ - 使用 importlib 属性时的 MIDL2015 警告

c++ - SSL 握手产生 BIO 错误

c++ - 当我在测试期间手动设置 errno 时,strerror_r 返回垃圾

c++ - 英特尔 TBB 中的原子 double / float

COM 组件类实现来自另一个类型库的接口(interface)

c++ - C++ : Can multiple Clients listen to one server when endpoint is hard coded? 中的远程过程调用 (RPC)