佚名通过本文主要向大家介绍了加载类型库dll时出错,加载类型库dll出错,不能注册类型库,加载类型库出错,无法注册文件的类型库等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 类型库A引用类型库B,结果最后类型库B中相关内容就出现在A中了
描述:
由于类型库A中有用到类型库B中的接口,因此引用了类型库B
引用的方式可以是import或者importlib(对我要问的问题效果一样)
类型库A:
这样的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 是类似的,不过换个方式提问而已。
描述:
类型库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 是类似的,不过换个方式提问而已。