gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-31 01:58:24 27 4
gpt4 key购买 nike

在 C++ 组件的 IDL 文件中,我有类似以下的内容,允许属性对 COM 可见:

interface IInterface
{
[propget, id(1), helpstring("the ID")]
HRESULT ID([out, retval] long *pVal);
}

当我构建 dll 并在 OLEView 中打开时,我看到类似这样的东西!?

interface IInterface
{
[propget, id(0x00000001), helpstring("the ID")]
HRESULT id([out, retval] long *pVal);
}

请注意,ID 显示为 id。但是,如果我修改此代码,说“ID2”,则 ID2 会按预期显示。然后我改回“ID”并再次显示 id。这让我很困惑。机器上一定有什么东西,这意味着该属性的 DLL 公开名称是小写的,但我在注册表中找不到任何东西。

有什么想法吗?很迷茫...

最佳答案

我猜这与 id has special meaning in IDL 的事实有关(如您自己的示例所示)- 如果您不必使用 IDL 关键字命名您的属性,我会使用不同的名称。

如果出于某种原因您必须为属性使用此名称,您可以使用 rename attribute at import time 以大写形式使用它.

关于C++ 公开的属性名称与 IDL 中给定的名称不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4124916/

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