2

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

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

但是我做了这一切,当我尝试在客户端 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 制作过程吗?

4

1 回答 1

1

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

于 2012-11-03T08:51:42.713 回答