将DLL转换为COM组件

时间:2012-10-31 11:33:00

标签: c++ com

我是COM的新手所以这可能是一个愚蠢的问题,但无论如何我都会问。 :)

据我了解,为了制作DLL COM,我们需要在.idl文件中定义其接口,使用MIDL编译器编译它,然后简单地实现使用定义接口的类。然后我们需要公开DllRegisterServerDllUnregisterServerDllGetClassObject。它应该足够了吧?

但我做了所有这些,当我尝试在客户端C ++程序中检查时,我的视觉工作室说 (在#import语句中)它找不到tlh文件...

这就是我的.idl的样子:

import "someIdl.idl";

[
    uuid(some-guid-Num1),
    version(1.0),
    helpstring("The library's description")
]
library LibName
{
    importlib("stdole2.tlb");
    [
        uuid(some-guid-Num2),
        helpstring("Some Description")
    ]
    coclass ClassName
    {       
        interface Interface_defined_in_someIdl;
    }
};

我错过了.idl中的内容吗?我的COM制作过程是否错误?

1 个答案:

答案 0 :(得分:1)

问题是我没有将TLB文件作为资源嵌入到DLL中。