Active X组件是充分利用OLE和Active X技术的自定义组件
微软公司积极鼓励把Active X作为一个与应用程序无关的自定义组件
从本质上说
Active X组件是一个Active X服务器
他能够提供所有的OLE功能和服务
可视化编辑
拖放和OLE自动化
ActiveX控件有属性(Propertiy)
方法(method)
事件(Event)三个元素构成
他一般是以
DLL
扩展名的形式出现的
这时细心的读者可能已经注意到在
Net FrameWork SDK中的类库中的类库文件也是以
DLL
扩展名的形式出现的
那么这二种
DLL
是一种类型的么?答案是否定的
这是因为这些Net FrameWork SDK中的类库是由Common Language Runtime编译生成的
这些由Common Language Runtime编译生成的的代码就是所谓的受管代码(Managed Code)
而Active X组件不是由Common Language Runtime生成的
而是由譬如
Visual Basic等语言生成的
这些代码是非受管代码(Unmanaged Code)
非受管代码是不能直接被
Net框架中的程序开发语言直接使用的
即Active X组件不能直接在Visual C#和Visual Basic
Net等程序中使用
而要经过一定的转换
把非受管代码转换成受管代码
这样才可以使用
本文就来探讨一下Visual C#中如何进行Active X组件编程
本文将按照以下顺序来介绍
首先利用Visual Basic
构建一个Active X组件
然后转换这个Active X组件成可以被Visual C#使用的组件
最后在Visual C#中使用此组件
一 程序设计和运行的基本环境
()视窗服务器版
()Net FrameWork SDK Beta 版
()Visual Basic
二用Visual Basic 构建一个Active X组件
()首先打开Visual Basic 在文件菜单中选择新建工程出现一个对话框在对话框中选择Active X DLL具体如下图
()然后在工具菜单中选择添加过程命名过程名称为show具体如下图
然后在此过程中加入以下代码
Public Function show ( )
MsgBox ( 这是在Visual C#中使用Active X! )
End Function
()接着选择工程菜单中的工程属性把刚才新建的过程重命名为mydll如下图所示
()生成Active X组件产生mydlldll文件
这时选择文件菜单中的生成mydlldll就会在指定的目录下面产生一个Active X组件名称为mydlldll具体操作如下图
此Active X组件的内容十分简单只有一个show()方法
三把非受管代码的Active X组件转换成受管代码的类库
Net框架提供了一个转换的程序通过此程序可以把非受管代码转换为受管代码这个程序的名称为tlbimpexe通过下面的命令就可以完成转换
tlbimp mydlldll /out:mydll
此时会产生一个mydll的类库这个类库中定义了一个命名空间为my在此命名空间中定义了一个类Class这个类有一个方法叫show的方法
四使用编译成受管代码的Active X组件
其实这样说已经不十分准确了因为Active X组件不可能是受管代码此时的Active X组件已经变成了可以被Net开发语言使用的类库了这样说主要是为了更方便理解有了上面的介绍可以较方面的完成下列的程序
using my ;
using System ;
public class Activex
{
public static void Main ( )
{
Class s = new Class ( ) ;
sshow ( ) ;
}
}
下图是编译后程序的运行界面
五总结
Actvie X组件是一个庞大的家族拥有很多功能强大的组件充分利用这些Active X组件资源不仅是对以前的资源的利用而且有时也能够解决许多依靠现有的技术不便于或者难以解决的问题其实Active X组件在Visual C#中的使用方法和其在Visual Basic Net中以及其他Net开发语言使用的方法是大同小异的