类型库A引用类型库B,结果最后类型库B中相关内容就出现在A中了

kingyo 2013-07-18 09:09:43
类型库B:
[
uuid(XXX--------------------)
]
interface IB
{
};


由于类型库A中有用到类型库B中的接口,因此引用了类型库B
引用的方式可以是import或者importlib(对我要问的问题效果一样)
类型库A:
import "B.tlb"
[
uuid(--------------------XXX)
]
interface IA
{
HRESULT DoSomething([in] IB* Value);
};


这样的A编译好后,A.tlb就包含了IB的定义。
有没有办法让A.tlb不包含IB的定义,而是最终我发布的时候同时发布B.tlb和A.tlb
因为我最终会用到A.dll和B.dll,如果A中包含了IB,B中也包含IB,
编译器会认为这两个IB是不一样的,一个是A::IB,一个是B::IB,这样在使用时就非常麻烦。

这个问题其实跟 http://bbs.csdn.net/topics/390519685 是类似的,不过换个方式提问而已。
...全文
50 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
fishion 2013-07-19
  • 打赏
  • 举报
回复
那可不可以当别人import A.tlb时就不再需要import B.tlb 因为用CoCreateInstance创建获取接口时需要的是接口的定义而已,只要定义一样就无所谓是从哪里获取的

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧