0

我有一个带有一堆 ATL 简单对象(= COM 对象)的 ATL DLL,所有这些都是由向导生成的。

IDL 文件包含许多接口和一个库部分,例如:

[
    object,
    uuid(00000000-0000-0000-0000-000000000000),
    dual,
    nonextensible,
    pointer_default(unique)
]
interface IFoo : IDispatch{
    [id(1)] HRESULT FooMethod();
};
[
    uuid(00000000-0000-0000-0000-000000000000),
    version(1.0),
]
library MyLib
{
    importlib("stdole2.tlb");
    [
        uuid(00000000-0000-0000-0000-000000000000)
    ]
    coclass Foo
    {
        [default] interface IFoo;
    };
}

MSDN似乎说progid应该为每个coclass自动生成一个属性。但是,我的注册表中没有。否则,DLL 在每次编译时完全正常注册,并且可以从 COM 客户端使用而不会出现任何问题。

progids 不是自动生成的怎么会发生?

4

1 回答 1

1

看来我弄错了文档,对于 IDL coclasses,ProgID 不会自动生成。太糟糕了。

无论如何,这里解释了如何稍后将它们添加到 .rgs 文件中。

于 2016-08-18T20:29:44.957 回答