创建 ActiveX DLL

部件提供了对象形式的可复用代码。要使用部件的代码,应用程序可以创建对象并调用对象的属性及方法,这种应用程序被称作一个客户应用程序。

对于使用部件对象的客户应用程序,部件可分为进程内运行的和进程外运行的。进程内部件,或者说 ActiveX DLL,运行在另一个应用程序的进程之中。客户可以是应用程序本身,也可以是该应用程序正在使用的其它进程内的部件。

图 2.1   由应用程序或其它进程内部件使用的进程内部件

本章以循序渐进的方式建立一个进程内部件 ThingDemo,使用它的类模块说明对象存活期、全局对象、以及控制模式和无模式对话框的对象等概念。

另外还将看到在 Microsoft Visual Basic 开发环境中,如何通过同时运行 DLL 和测试工程来调试进程内的 ActiveX DLL。

用来创建 ThingDemo 部件的步骤之间存在调用关系。因此,这些步骤的执行顺序是很重要的。

主题

创建 ThingDemo DLL 工程

如何为进程内部件设置工程选项。

vbconCreatingPropertiesMethods03 创建 Thing 类的属性和方法

添加两个属性和一个方法。

vbconTestingYourOLEDLL 创建 TestThing 测试工程

创建一个工程组,包括 ThingDemo 和一个测试工程,由此可以在进程中调试 DLL 工程。

创建并测试 Thing 对象

在 TestThing 工程中添加代码,创建 Thing 对象的实例并调用它的属性和方法。

vbconRunningTestApplication03 运行 TestThing 测试程序

说明进程内部件提供的对象的存活期。

循环引用和对象存活期

进一步探讨对象的存活期,阐述循环引用对关闭部件的影响。

vbconAddingEventToOLEDLLProject 在 ThingDemo 工程中添加窗体

添加代码来显示一个模式的或无模式的对话框窗体,使用全局类来控制该窗体。

在 TestThing 中使用全局对象

测试全局对象和对话框,同时进一步说明如何调试进程内 DLL。

vbconCreatingTestingOLEDLLExecutable 编译和测试 ThingDemo DLL

编译工程。介绍如何利用测试工程测试 .dll 文件,以及如何在其它工程中包含该文件。

循环引用和部件的关闭

在客户应用程序释放了所有对进程内部件对象的引用后,Visual Basic 如何卸载该部件。另外还指出循环引用可能会妨碍卸载。

vbconOLEDLLCreationSummary 关于创建 ActiveX DLL 的总结

概述设计和创建进程内部件的典型过程。


如果按照下面的方式设置了开发环境,那么执行这些步骤就会更加容易。

在开始之前,请按照以下步骤执行:

  1. 在“视图”菜单中,单击“工具箱”打开工具箱。

  2. 在“视图”菜单中,单击“工程资源管理器”打开“工程资源管理器”窗口。“工程资源管理器”窗口是用来在工程文件之间进行切换的。

  3. 如果“工程资源管理器”窗口处于下面这样的文件夹模式,单击“工程资源管理器”窗口工具栏上的“切换文件夹”按钮把文件夹关掉。

  4. 在“视图”菜单中,单击“属性窗口”打开“属性”窗口。

  5. 在“工具”菜单中,单击“选项”打开“选项”对话框。

    选择“编辑器”选项卡。选中“要求变量声明”。这样就能够更容易发现输入错误。

    选择“环境”选项卡。选中“提示保存改变”,然后单击“确定”。这样设置以后,要离开工程的时候将提醒保存工程的修改。