部件提供了对象形式的可复用代码。要使用部件的代码,应用程序可以创建对象并调用对象的属性及方法,这种应用程序被称作一个客户应用程序。
对于使用部件对象的客户应用程序,部件可分为进程内运行的和进程外运行的。进程内部件,或者说 ActiveX DLL,运行在另一个应用程序的进程之中。客户可以是应用程序本身,也可以是该应用程序正在使用的其它进程内的部件。
图 2.1 由应用程序或其它进程内部件使用的进程内部件
本章以循序渐进的方式建立一个进程内部件 ThingDemo,使用它的类模块说明对象存活期、全局对象、以及控制模式和无模式对话框的对象等概念。
另外还将看到在 Microsoft Visual Basic 开发环境中,如何通过同时运行 DLL 和测试工程来调试进程内的 ActiveX DLL。
用来创建 ThingDemo 部件的步骤之间存在调用关系。因此,这些步骤的执行顺序是很重要的。
![]() |
创建 ThingDemo DLL 工程
如何为进程内部件设置工程选项。 |
![]() |
创建 Thing 类的属性和方法
添加两个属性和一个方法。 |
![]() |
创建 TestThing 测试工程
创建一个工程组,包括 ThingDemo 和一个测试工程,由此可以在进程中调试 DLL 工程。 |
![]() |
创建并测试 Thing 对象
在 TestThing 工程中添加代码,创建 Thing 对象的实例并调用它的属性和方法。 |
![]() |
运行 TestThing 测试程序
说明进程内部件提供的对象的存活期。 |
![]() |
循环引用和对象存活期
进一步探讨对象的存活期,阐述循环引用对关闭部件的影响。 |
![]() |
在 ThingDemo 工程中添加窗体
添加代码来显示一个模式的或无模式的对话框窗体,使用全局类来控制该窗体。 |
![]() |
在 TestThing 中使用全局对象
测试全局对象和对话框,同时进一步说明如何调试进程内 DLL。 |
![]() |
编译和测试 ThingDemo DLL
编译工程。介绍如何利用测试工程测试 .dll 文件,以及如何在其它工程中包含该文件。 |
![]() |
循环引用和部件的关闭
在客户应用程序释放了所有对进程内部件对象的引用后,Visual Basic 如何卸载该部件。另外还指出循环引用可能会妨碍卸载。 |
![]() |
关于创建 ActiveX DLL 的总结
概述设计和创建进程内部件的典型过程。 |
如果按照下面的方式设置了开发环境,那么执行这些步骤就会更加容易。
在开始之前,请按照以下步骤执行:
选择“编辑器”选项卡。选中“要求变量声明”。这样就能够更容易发现输入错误。
选择“环境”选项卡。选中“提示保存改变”,然后单击“确定”。这样设置以后,要离开工程的时候将提醒保存工程的修改。