我是COM的新手所以这可能是一个愚蠢的问题,但无论如何我都会问。 :)
据我了解,为了制作DLL COM,我们需要在.idl文件中定义其接口,使用MIDL编译器编译它,然后简单地实现使用定义接口的类。然后我们需要公开DllRegisterServer
,DllUnregisterServer
和DllGetClassObject
。它应该足够了吧?
但我做了所有这些,当我尝试在客户端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制作过程是否错误?
答案 0 :(得分:1)
问题是我没有将TLB文件作为资源嵌入到DLL中。