从COM DLL产生Type Library档案

Posted by on in Blogs

在前几年由于工作的关系经常和Crhis出差到新加坡, 马来西亚, 印度尼西亚和澳洲, 因此认识了许多当地的使用者,尤其在当地办活动时每每都有极为热心的Delphi/C++Builder爱好者给予我和Chris在疲惫的旅程中温暖照顾, 真是令人怀念的时光.

最近收到其中一些朋友的来信, 除了询问Delphi/C++Builder的近况和未来的发展之外, 主要都是叙述目前他们接手了以前的旧系统, 这些旧系统是用COM技术写的, 他们并不熟悉COM技术, 只知道旧系统有提供COM DLL让客户端呼叫使用 但当他们使用Delphi/C++Builder撰写客户端呼叫COM DLL时却失败, 因此他们写信向我求救.

      虽然我不确定他们的COM DLL是什么, 但我猜想它可能是使用以前版本Delphi/C++Builder写的Midas服务器或是OLE Automation服务器, 因此客户端要呼叫这些COM DLL时客户端必须注册COM DLLType Library. 但这些朋友回复只有COM DLL没有什么Type Library档案, 问我是否可以从COM DLL产生Type Library档案?, 这个问题又把我的记忆瞬间带回COM/DCOM的时光.

要从COM DLL产生Type Library档案有几个方法, 其中最简单的就是使用2个命令行工具tlibimp.exeGenTLB.exe, 它们都在Delphi/C++Builder的安装子目录bin之中. 首先可用tlibimp.exe产生ridl, 再用GenTLB.exeridl檔产生Type Library档案, 最后再使用另外一个命令行工具tregsvr.exe就可以在客户端注册Type Library档案了, 写一个简单的batch檔就可以在1,2秒内搞定, 非常简单.例如:

c:>tlibimp -I   pTestCOM.dll

c:>gentlb pTestCOM.ridl

之后就可以看到pTestCOM.tlb这个Type Library档案了.

 

 

也要谢谢这些朋友的问题, 让我再次回味了那时COM/DCOM的美好时光.



Comments

  • xe5up1super03 X52314
    xe5up1super03 X52314 Tuesday, 14 November 2017

    IDE Menu Component->Import Component
    Import a Type Library
    select you dll
    finish

  • Please login first in order for you to submit comments
  • Page :
  • 1

Check out more tips and tricks in this development video: