利用Tlbimp.exe和AxImp.exe将ocx 控件转换为公共语言类型程序集

来源:互联网 发布:微博营销号 知乎 编辑:程序博客网 时间:2024/06/05 19:12

"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是对应关系。







阅读全文
0 0
原创粉丝点击