首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++公开的属性名称与IDL中提供的名称不匹配

C++公开的属性名称与IDL中提供的名称不匹配
EN

Stack Overflow用户
提问于 2010-11-08 14:51:31
回答 1查看 171关注 0票数 2

在C++组件的IDL文件中,我有如下内容,允许该属性是COM可见的:

代码语言:javascript
复制
interface IInterface
{
    [propget, id(1), helpstring("the ID")]
         HRESULT ID([out, retval] long *pVal);
}

当我构建dll并在OLEView中打开时,我会看到这样的情况!?

代码语言:javascript
复制
interface IInterface
{
    [propget, id(0x00000001), helpstring("the ID")]
         HRESULT id([out, retval] long *pVal);
}

注意,ID显示为id。但是,如果我修改这段代码,以表示"ID2“,那么ID2就会如预期的那样显示出来。然后,我将更改为"ID“,并再次显示id。这让我很困惑。机器上一定有什么东西,这意味着这个属性的DLL公开名称是小写的,但是我在注册表中找不到任何相关的东西。

有什么想法吗?很困惑..。

EN

回答 1

Stack Overflow用户

发布于 2010-11-08 14:55:00

我猜这与id在IDL中有特殊的含义。有关(正如您自己的例子所示)--如果您不必使用IDL关键字来命名属性,我只需使用另一个名称即可。

如果由于某些原因,必须使用该属性的名称,则可以使用在导入时重命名属性在大写形式中使用该名称。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4124916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档