在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公开名称是小写的,但是我在注册表中找不到任何相关的东西。
有什么想法吗?很困惑..。
发布于 2010-11-08 14:55:00
我猜这与id在IDL中有特殊的含义。有关(正如您自己的例子所示)--如果您不必使用IDL关键字来命名属性,我只需使用另一个名称即可。
如果由于某些原因,必须使用该属性的名称,则可以使用在导入时重命名属性在大写形式中使用该名称。
https://stackoverflow.com/questions/4124916
复制相似问题