在工程中引用ado组件时,引用 tlb 文件与引用 dll 文件有何本质区别呢?解决方案

在工程中引用ado组件时,引用 tlb 文件与引用 dll 文件有何本质区别呢?
在工程中引用ado组件时,引用 tlb 文件与引用 dll 文件有何本质区别呢?
---------------------------
从以下图可以看出,当引用ado版本为2.5时,它引用的具体文件是 msado25.tlb,可是如果引用是2.8版本时,它引用的是 msado15.dll,我不明白,为何同样的ado组件,当版本不同时,引用的文件的扩展名竟然是不同的.tlb与dll这两种文件本质的区别在何处呢?
再有,我在实际中应该如何引用呢?比如我的一个c/s程序,VB+sql server2000,运行这个程序的客户端有可能是win2000,也有可能是winxp,我应该如何引用ado组件呢?我应该引用哪个版本呢?
最关键的我想问:引用tlb与引用dll有何区别?



------解决方案--------------------
版本问题。请看 http://support.microsoft.com/kb/299645/en
------解决方案--------------------
.tlb与dll这两种文件本质的区别在何处呢

//

我觉得前者是一个类似"清单"的东西,里面包含了一些东西的"描述"??

DLL里面好象可以包含前者吧...同时还可以包含具体的对象

请高人详细说明一下...
------解决方案--------------------
嘿嘿
tlb是typelib文件的意思,就是COM组件用来描述接口方法的信息.
而COM dll中通常都包含有tlb部分.
tlb是脚本类语言and VB调用 的对象必须部分. 
原因就是都是使用IDispatch接口进行调用COM组件滴
------解决方案--------------------
我觉得 tlb是会写进exe里面的
引用了 生成exe就不需要这个tlb文件了 (有可能还需要配套的dll)


dll 的话 生成exe 还是要 调用这个dll才能运行
------解决方案--------------------
tlb信息是给别人使用时才用是上的吧?
------解决方案--------------------
曾经制作过简单的tlb,是用类似C语言的语言写的,好像是IDL,用visul studio中的一个工具(惭愧,一时忘了)。从IDL源文件中可以看出tlb中只是一些接口,不实现功能。