全部博文(75)
分类: 嵌入式
2011-05-28 11:16:49
一. VB.NET和COM组件:
写到这里有一个概念要澄清一下,就是VB.NET和C#一样,不能直接使用已经存在的COM组件,这是因为编译VB.NET和C#的文件的时候,必须保证编译时候所使用的文件是由受管代码(Managed Code)文件,我们知道VB.NET和C#所使用的.Net FrameWork SDK都是受管代码,而对于那些COM组件来说,他们都是非受管代码(Unmanaged Code),所以这些COM组件要能够被VB.NET和C#使用,必须实现自身从非受管代码到受管代码的转换。好在,在.Net框架中提供了一个程序来专门实现这种转换,这个文件就是"Aximp.exe",如果你把.Net FrameWork SDK安装在"C"盘,那么在"C:\Program Files\Microsoft.NET\FrameworkSDK\Bin"目录中,就可以找到这个文件。
二. COM组件的转换:
在本文中所使用的COM组件的名称是微软的Web浏览器,如果你选用的操作系统是2000,并且安装的路径是"C:\Winnt",那么这个组件可以在"C:\Winnt\System32"目录中找到;如果你选用的操作系统是98,并且安装的路径是"C:\",那么这个组件可以在"C:\\System"目录中找到,这个COM组件的名称为"shdocvw.dll"。"Aximp.exe"是一个功能比较强大的程序,你可以通过"Aximp /?"命令,来了解他的一些其他的常规使用方法,由于在本文中只是最为简单的使用方法,所以使用下列简单的命令就可成功转换:
Aximp c:\winnt\system32\shdocvw.dll
运行上述命令后就可以实现转换,并在当前目录中产生"SHDocVw.dll"和"AxSHDocVw.dll"二个文件。具体如下图:
图01:COM组件的转换过程
在成功转换过以后,就要利用转换后的这二个文件,用VB.NET来做一个属于自己的浏览器。
三. 本文程序设计和运行的软件环境:
(1).微软公司视窗2000服务器版
(2)..Net FrameWork SDK Beta 2
四. 程序设计的思路以及关键步骤的解决方法:
(1).在VB.NET中使用浏览器组件:
在转换而成的"AxSHDocVw.dll"和"SHDocVw.dll"中定义了命名空间"AxSHDocVw",在此命名空间中封装了一个"AxWebBrowser"组件,这个组件中有若干个方法和属性,VB.NET就是通过这些方法和属性来实现浏览器的一些基本功能的。使用此浏览器组件和使用其他的WinForm组件的过程是一样的,首先要导入命名空间,然后在程序中继承此命名空间中定义的浏览器组件,最后设定这个继承后的组件的属性和方法。具体如下:
< I > .导入命名空间,具体代码如下:
Imports AxSHDocVw
< II > . 继承此命名空间中定义的浏览器组件,具体代码如下:
Friend WithEvents AxWebBrowser1 As AxSHDocVw.AxWebBrowser
(2).VB.NET实现浏览器的一些基本功能: