idl 中 COM 的 C++ 公开属性“突然”显示为小写

Mr *_* AH 2 c++ com

我有这个旧的 C++ COM 组件。我拿了最新的代码库,构建它,发现其中一个属性变成了小写。例如,在预编译的 dll 中,我有一个属性“类型”,但是当从源代码构建时,它被称为“类型”。idl 显示该属性称为“类型”。那么这里可能会发生什么?

por*_*ges 5

COM 不区分大小写,因此在库的符号表中只有一个条目用于符号“ type”。放入符号表的版本是编译器遇到的第一个版本。

微软对此事建议很简单:

确保在引入新标识符时 IDL 文件中不存在相同的名称。

您应该坚持使用Typetype使用 IDL,以获得一致的结果。