利用Tlbimp.exe和AxImp.exe將ocx 控件轉換爲公共語言類型程序集

"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是對應關係。







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章