"Tlbimp.exe" 是 “Type Library Importer”的縮寫,它的作用是將 COM組件轉化爲同等功能的公共語言運行時庫(CLR assembly),客戶端可以像引用其他CLR 庫一樣引用COM組件。
例如:
下面的命令是將myText.tlb轉化爲myTest.dll,這時候不管myTest.tlb的類型庫的名稱是什麼。
tlbimp myTest.tlb /out:myTest.dll
AxImp.exe是 “ActiveX importer”的縮寫,他是將ActiveX控件中的COM類型庫中的類型定義轉化爲Windows窗口控件, 客戶端可以直接像引用其他窗口一樣,在客戶端直接new 該窗口,並進行顯示,該控件繼承於AxHost,目的是爲了可以讓Windows窗口可以顯示。
例如:
下面的命令爲媒體播放器控件 msdxm.ocx 生成 MediaPlayer.dll 和 AxMediaPlayer.dll。 其中MediaPlayer.dll裏面包含了ActiveX 控件裏面的公共語言運行的代理,AxMediaPlayer.dll是窗口界面的代理。
aximp c:\systemroot\system32\msdxm.ocx
當然可以利用命令參數指定輸出DLL的名稱。
當然他們可以相互配合使用,利用tlbimp導入公共語言運行的代理,利用aximp導出窗口代理,比如:
tlbimp.exe who.ocx /asmversion:2.0.1.2.0 /namespace:RSWhoLib /delaysign /publickey:"abc.snk /out:who.dll
aximp.exe who.ocx /rcw:who.dll /delaysign /publickey:"abc.snk" /out axwho.dll
注意參數的設置, 參數RCW保證who.dll和axwho.dll是對應關係。