首页 理论教育 使用VisualBasic6.0编写ASP组件

使用VisualBasic6.0编写ASP组件

时间:2023-11-20 理论教育 版权反馈
【摘要】:开发ActiveX Server Components 可以使用很多工具,如C/C++、Visual Basic 或Delphi等。本节将通过示例介绍如何使用Microsoft Visual Basic 6.0来编写属于自己的组件。该组件的制作步骤如下:Step 1.启动Microsoft Visual Basic 6.0,如图9-1所示在“新建工程”对话框中的“建立”标签页中选择“ActiveX DLL”图标,再按下按钮。e.MTSTransactionMode 属性 必须配合Instancing 属性使用,Instancing 属性值为PublicNotCreatable、MultiUse 及GlobaMultiUse 时才有效。MTSTransactionMode 属性值包括NotAnMTSObject、NoTransactions、RequiresTransaction、UsesTransaction 及 RequiresNewTransaction 等。RequiresTransaction 设置值与NoTransactions 设置值的作用相反,前者表示此组件的对象必须在事务范围中运行。

使用VisualBasic6.0编写ASP组件

开发ActiveX Server Components 可以使用很多工具,如C/C++、Visual Basic 或Delphi等。本节将通过示例介绍如何使用Microsoft Visual Basic 6.0来编写属于自己的组件。按照下面的步骤,我们可以建立一个“扑克牌比大小”的ASP组件。这里用到了几个属性(Properties)及一个方法(Methods),这些属性包括“目前所显示的数值”、“用户的选择数值(大或小)”、“用户赢的几率”及“系统所产生的新值”;方法是用来决定输赢及系统所产生的下一张牌。该组件的制作步骤如下:

Step 1.启动Microsoft Visual Basic 6.0,如图9-1所示在“新建工程”对话框中的“建立”标签页中选择“ActiveX DLL”图标,再按下【确定】按钮

图9-1 建立新工程

Step 2.设置这个工程有关的设置选项。选择下拉菜单的“工程/Projectl 属性”,此时会出现“工程属性”对话框,如图9-2所示。在“工程名称”字段输入工程名称,这里命名为TestProjectl,并将启动对象设置“Sub Main”,然后按下【确定】按钮,如图9-3所示。这里的启动对象是指此ActiveX Server Components 启动时的进入点(Entry Point,or Starting Point),每个ActiveX Server Components均会有一个进入点。

图9-2 选择工程属性

图9-3 设置工程属性

Step 3.设置与“对象类别模块”相关的属性,在“工程视窗”中单击“对象类别模块”中的Classl,并按下【F4】功能键以启动“属性视窗”,如图9-4所示。

图9-4 设置对象类别模块各项属性

Step 4.此时“属性视窗”中会显示此对象类别的Name、DataBindingBehavior、DataSourceBehavior、Instancing、MTSTransactionMode 及Persistable 等属性。这些属性分别表示不同的意义,分述如下:

a.Name 属性 用来设置此对象类别的惟一识别名称,由用户自己定义。

b.DataBindingBehavior 属性 用来决定此对象类别是否可以连接到一个数据源(DataSource),通常在设计期内使用。DataBindingBehavior属性包括vbNone、vbSimpleBound及vbComplexBound 等属性值。vbNone 表示此对象类别无法连接到数据源;vbSimpleBound表示此对象类别可以使用简单连接(simple binding)来连接到数据源;vbComplexBound 表示此对象类别可以使用复杂连接(complex binding)来连接到数据源。这里所谓的简单连接是指连接到单一数据栏,而复杂连接是指连接到一个数据表(table)。

c.DataSourceBehavior 属性 用来决定此对象类别是否能作为其他对象的数据源(DataSource),通常在设计期内使用。DataSourceBehavior 属性包括vbNone 及vbDataSource等属性值。vbNone 表示此对象无法作为其他对象或应用程序的数据源,vbDataSource 则表示该对象可以作为其他对象或应用程序的数据源。

d.Instancing 属性 用来设置此对象能否在工程以外建立公共对象的运行个体及其运行方式。Instancing 属性包括Private、PublicNotCreatable、MultiUse、GlobaMultiUse 等属性值。Private 设置值表示不允许其他应用程序存取与此对象类别有关的程序库信息,当然也无法建立该对象类别的运行个体,因此,Private 的对象只能在自己的组件中使用。PublicNotCreatable设置值可以提供其他应用程序存取此对象相关的调试信息,但必须是由该组件自行建立对象才可以,即用户无法使用CreateObject 函数或New 运算符来建立此类别对象。MultiUse 设置值表示此组件可以允许多个应用程序建立对象类别,即此组件的一个运行个体可以建立任意数目的对象。GlobaMultiUse 设置值与MultiUse 相类似,惟一不同的在于该对象类别的各种属性和方法可以当作全局函数来使用。

e.MTSTransactionMode 属性 必须配合Instancing 属性使用,Instancing 属性值为PublicNotCreatable、MultiUse 及GlobaMultiUse 时才有效。MTSTransactionMode 属性能让该组件在Microsoft Transaction Server 中运行,假如此组件是在Microsoft Transaction Server 以外运行,则该属性不起作用。MTSTransactionMode 属性值包括NotAnMTSObject、NoTransactions、RequiresTransaction、UsesTransaction 及 RequiresNewTransaction 等。NotAnMTSObject设置值表示此组件不支持Microsoft Transaction Server。NoTransactions设置值表示此组件并不在事务(Transaction)范围运行。即当用户建立新对象时,不论客户端是否有事务,该对象的内容都不会列于事务中。RequiresTransaction 设置值与NoTransactions 设置值的作用相反,前者表示此组件的对象必须在事务范围中运行。假如客户端(Client)没有事务,Microsoft Transaction Server 会自动为该对象建立新的事务;假如客户端有事务,则此对象会继承此事务。UsesTransaction 设置值表示该组件的对象可以在它们的客户端的事务范围中运行。假如客户端没有事务,则此对象不使用事务;假如客户端有事务,则此对象会继承此事务。RequiresNewTransaction 设置值表示此组件的对象必须在自己所属的事务范围中运行,当建立新对象时,无论客户端是否有事务,Microsoft Transaction Server 均会自动建立新的事务。

f.Persistable 属性 Persistable 设置值表示此对象是否能在各个运行个体(Instance)间存储和返回数据。vbNotPersistable 设置值表示此对象的数据无法在各个运行个体间保存,vbPersistable 设置值则表示此对象的数据可以在各个运行个体间保存。

在编写组件时,应根据所编写的组件来决定这些属性的设置值,即将Instancing 属性设置MultiUse 及Name 属性设置为TestClassl。

Step 5.前面说过,每个ActiveX Server Component均会有一个进入点,通常这个进入点用来设置此对象建立时的初始化工作。如果编写的对象很简单,初始化的工作可以省略。利用这个进入点来进行变量初值的设置,在“工程视窗”中按右键,并选择“添加模块”,如图9-5所示。此时系统会出现“添加模块”对话框,在此对话框中选择“模块”图标,再按下【打开】按钮,如图9-6所示。(www.xing528.com)

图9-5 添加模块

图9-6 添加模块对话框

此时系统会自动建立一个名为“Modulel”的模块,在此模块编辑器中输入以下程序代码,就可以根据组件的性质自行编写相关的程序代码,这里以变量初值设置为例。

Step 6.本步骤将着手编制组件的程序代码。在“工程视窗”中的“对象类别模块/TestClassl”图标上双击以启动“TestClassl”编辑器,如图9-7所示。

图9-7 选择对象类别模块

先声明NowValue、SelectValue、WinRate 及NewValue 等四个全局变量,分别表示“目前所显示的数值”、“用户的选择数值(大或小)”、“用户赢的几率”及“系统所产生的新值”,这四个全局变量可以被视为此组件的属性值,以后前端的ASP 程序可以直接存取这些属性。另外建立一个Compare函数,这个函数的主要目的是利用“用户赢的几率”来决定用户的输赢。

完整的程序代码如下:

Step 7.至此,已经完成这个组件的大部分,接着需要对这个组件进行注册。

如果是在Web 服务器(Web Server)上开发的这个组件,只需利用Visual Basic 6.0 提供的注册功能即可。运行下拉式菜单“文件/制成TestProjectl.dll”,再按下【确定】按钮,如图9-8所示。

图9-8 注册ASP 组件的方法

如果不是在Web 服务器(Web Server)上开发的这个组件,则需将TestProjectl.dll 文件复制到Web 服务器的计算机中,并利用Regsvr32.exe 来注册该组件,其语法为Regsvr32.exe TestProjectl.dll(注意路径,操作系统带有Regsvr32.exe)。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈