vc6导入dll有时需要使用tlb文件
原因:
lib文件得看你是静态库还是动态库了,
如果是静态库,编译后所有的二进制文件都在LIB文件里
动态库的话,编译后的代码放在DLL中,LIB只是起个索引
TLB是组件服务的接口
而DLL包含了接口和实现
有些情况下,比如客户方需要远程调用,那么在客户机上部署dll是没有意义的,因为dll所需的环境在服务器上,而客户只需要dll里的接口定义部分,这个时候tlb就派上用场了
---------------------
在导入tlb文件时,在stdafx.h中
#import "COMDLL.tlb" no_namespace named_guids
..没有no_namespace ,编译时会找不到接口
..没有named_guids,编译可能会通过,但对所用的tlh中内容会找不到,可能挂
加入如上两个,编译后产生A.tlh和A.tli两个文件
.tlh相当于头文件,包含很多重要的定义,.tli则是具体的实现。
如果更新了tlb文件,需要在菜单里选择全部重新编译,否则编译器仍然会认为.tlh和.tli文件是最新的。
------补充.待续------