所有
我的环境: 使用VS C ++ 2005,使用ATL
我有项目,我想创建和构建2个独立的COM服务器Dll,我需要引用项目B中项目A中定义的COM对象的接口。 注意:我需要能够在IDL级别执行此操作,然后编译器将生成正确的标头等,并且我的类型库将是正确的。
这是一个例子:
项目A:
服务器对象 - > iServer中
项目B
客户对象 - > IClient有一个方法GetServer(),它返回在项目A中定义的IServer
项目A是单独的COM Dll,并且是首先构建的。 项目B是单独的COM Dll,并引用项目A中定义的接口。
是的,我知道,我可以让IClient.GetServer()以IUnknown的形式返回对服务器对象的引用,然后让开发人员明确地将其转发到服务器接口,但这很烦人且容易出错。
答案 0 :(得分:0)
根据建议,使用importlib,但在我的情况下,我需要在我的idl中使用import。 此外,MIDL将在您的标题中生成#include,其中包含您需要在项目属性中添加include目录引用的其他项目中包含的头文件,因为标题位于不同的文件夹中。