COM的几个问题

1 DLL是否可以跨语言?

   可以. VB可以调用使用vc编译的DLL中的函数.

   但是具体方法我还不知道.

2 ActiveX控件与ATL. COM之间的关系:

 

3 理解COM与DLL之间的关系.

   可以这样理解:  DLL是一个动态链接库.  COM则是一种特殊的制作DLL的方法.

   比如说, DLL是一部手机, 我们可以做出很多的手机, 它们都能够用来打电话, 但是有一些问题,比如说不同种类的手机, 它们的充电器接口不一样,不能通用. 这点很不方便, 如果我们规定, 所有的手机厂商都必须按照同样的一个标准(比如说直径必须都是5毫米)来生产手机, 那这种规则就叫做COM. 有时候为了方便, 我们把利用COM规则制作出来的特殊DLL简称为COM. (这也是为什么一直以来COM难以理解的原因)

 

   那种这个规则是什么呢?

 

 

 

4 .tlb是一个很重要的文件.

    应该学会使用它. 在只有.tlb存在的情况下,我们似乎也可以通过#import  **.tlb的方法使用其中的接口...

 

似乎还可以使用ole view生成.tlb.

 

 5 EXE如何使用DLL中的COM接口?

    在制作COM时, 会生成.H  .C   .TLB  .DLL  ALLDATA.C ALLDATA_P.C

    一: EXE可以包含.H .C, 然后调用COM库函数就可以使用相应的接口了.

          DLL中的COM组件需要使用regsvr32来注册.

    二: 不包含.H .C也行, 但是要有.TLB

         调用#import   "........tlb",  以预编译时会生成.tlh和.tli文件. .tlh文件是类接口定义. .tli是接口的GUID定义(但是还是提示编译不通过,不知道为什么,难道必须包含DLL提供的.C?)

 

三: 也可以只包含.DLL.

     同上一个一样,也用#import命令, #import "........DLL", 也会生成.tlh和.tli文件. 其实这个是因为我们在制作DLL时把.TLB包含进DLL中了(方法如下).

     (也可以IMPORT exe)

感谢您使用微软产品。
TypeLib实际上是作为资源放在dll中的。

Step   1:   Compile   the   IDL   file   using   MIDL.exe   and   get   the   .tlb   file
Step   2:   In   VC++6   IDE,   WorkSpace-> Resource   View,   View   -> Resource   Includes,   and   then   you   get   the   resource   includes   dialog:
In   the   "Compile-time   directives "   column,   please   enter   something   in   the   following   format:

1   TYPELIB   "MyTypeLib.tlb "

Step   3:   Compile   your   DLL   and   the   .tlb   file   now   is   packaged   with   your   dll.


- 微软亚洲技术中心   VC技术支持

本贴子仅供CSDN的用户作为参考信息使用。其内容不具备任何法律保障。您需要考虑到并承担使用此信息可能带来的风险。具体事项可参见使用条款   ( http://www.csdn.net/microsoft/terms.shtm)。

  

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值