如何從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

Check out more tips and tricks in this development video: