|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
使用cdonts,可以发送、查看邮件,实现webmail的功能。结合wsh,可以实现对nt主机的管理,如nt用户管理、iis虚拟主机设置、exchange邮箱设置等等,就像管理本地机一样方便。在后面的内容中,我们进修了组件的利用,网上的组件固然很多,但常常小小的一个组件就要你取出美圆来,而国产的组件又太少,想掏点国民币还没地儿好掏,算了,您爽性本人写吧,实在编写组件其实不难,不过是刚入手下手写低程度的组件,渐渐入手下手写高程度的组件罢了。要编写ActiveXServerComponents,有多种工具可供选择:VisualBasic、C++、Java等等,这里选择最复杂的VB6.0,只需你之前用过VB,包你不到1小时以内,做一个小组件出来。
1、组件编写速成――编写组件最基础的步骤
本部分次要解说编写组件的基础步骤,假如你有进一步进修的愿望,请参照VB6.0匡助文档中“创立ActiveXDLL”部分(MSDNLibrary中文档文件名为Vbcon98.chm)。
目标:编写一个最复杂的加法器组件,这个组件有两个属性,一个办法。我们从最熟习的中央入手下手,那就是先假定这个组件已存在,看看在ASP利用该组件的代码:
<%
DimobjSum
‘先创立该组件,组件标识为TestDll.Sum
SetobjSum=Server.CreateObject("TestDll.Sum")
‘记着TestDll.Sum中的“TestDll”,“Sum”。
objSum.augend=10.52‘augend属性为被加数
objSum.addend=382.41‘addend属性为加数
Result=objSum.Plus‘Plus办法乞降
Response.WriteResult
SetobjSum=Nothing
%>
请务必记着这几个关头词:TestDll、Sum、augend、addend、Plus,这将与接上去的事情严密联系关系。上面是具体步骤:
1.运转VB6.0,在“文件”菜单中,单击“新建工程”→在“新建工程”对话框中,双击“ActiveXDLL”图标→VisualBasic将向该新工程中主动增加一个类模块Class1(在“工程资本办理器”中能够看到,如)。
2.按F4键翻开“属性”窗口。双击“称号”属性把“Class1”改成Sum。
3.在“工程”菜单中,单击“工程1属性”翻开“工程属性”对话框。在“工程称号”中填写TestDll,在“工程形貌”中填写“创立ActiveXDLL示例”。如。
提醒:ASP创立组件中的标识TestDLL.Sum这两项的意义分明了吧。
4.在“文件”菜单中,单击“保留工程”,分离利用上面的称号保留工程文件:SetupDll.cls和SetupDll.vbp。
5.为Sum类创立属性:
(1)在“工具”菜单中,选择“增加历程”翻开“增加历程”对话框。在“称号”框中,输出augend,单击“属性”,然后单击“断定”,如(注重:以后核心应在代码窗口,不然“增加历程”菜单有效)。
(2)在“工具”菜单中,选择“增加历程”翻开“增加历程”对话框。在“称号”框中,输出addend,单击“属性”,然后单击“断定”。
6.为Sum类创立办法:
在“工具”菜单中,单击“增加历程”翻开“增加历程”对话框。在“称号”框中,输出Plus,在范例中,你能够选择“子程序”或“函数”,本例中因为要前往加数与被加数之和,故单击“函数”,然后单击“断定”。
如今,后面ASP代码中的五个关头词语都已用上,这下良多器材都分明了吧。
7.类模块Sum代码窗口中一切代码以下:
OptionExplicit
Privatemdbl_augendAsDouble
Privatemdbl_addendAsDouble
PublicPropertyGetaugend()AsDouble
augend=mdbl_augend
EndProperty
PublicPropertyLetaugend(ByValvNewValueAsDouble)
mdbl_augend=vNewValue
EndProperty
PublicPropertyGetaddend()AsDouble
addend=mdbl_addend
EndProperty
PublicPropertyLetaddend(ByValvNewValueAsDouble)
mdbl_addend=vNewValue
EndProperty
PublicFunctionPlus()
Plus=augend+addend
EndFunction
你已注重到以上代码与体系天生的代码有点分歧,次要是PublicPropertyGetaugend()AsVariant部分用实践的数据范例Double替换了。
注重:实践上,当实行x=objSum.augend语句时,挪用的是PropertyGet历程,猎取mdbl_augend的值,而实行objSum.augend=10.52语句时,将挪用PropertyLet历程,将10.52赋给mdbl_augend。
8.最初一步,在“文件”菜单中,单击“天生.Dll(K)…”,天生文件SetupDll.dll。
到这里,组件已创立好了。如今,我们能够先在VB6中编写一个测试工程,测试一下该文件准确与否。
1.在“文件”菜单中,单击“新建工程”→双击“尺度EXE”。
2.在“工程”菜单中,单击“援用”→在“援用”对话框中按“扫瞄”按钮,选择方才编译过的“SetupDll.dll”文件→单击“断定”。
3.最初在代码窗口中编写以下代码:
OptionExplicit
PrivateSubForm_Load()
DimobjSumAsTestDll.Sum
SetobjSum=NewSum
objSum.augend=10.52
objSum.addend=382.41
MsgBoxobjSum.Plus
EndSub
运转一下,了局准确,接上去我们在ASP中利用这个组件。将SetupDll.dll拷到Web服务器中,并用“Regsvr32.exesetupdll.dll”命令注册该组件,然后在扫瞄器中实行本部分隔头的ASP程序。假如不可的话,你能够实验先用VB6的打包工具打包,然后再安装,组件会主动注册,并且一些必须的VB6运转文件也会主动安装。
申明:本部分一切程序均鄙人载包的Setupdll.zip中。
下面的例子中我们利用属性历程PropertyGet和PropertyLet来增加属性(PropertyGet读取属性的值,而PropertyLet给属性赋值),若必要对设置的值举行校验,可在PropertyLet历程编写得当代码。以下面代码:
PublicPropertyLetaugend(ByValvNewValueAsDouble)
IfvNewValue<100Then
MsgBox"弄甚么!小于100的值,本人默算就好了"
Else
mdbl_augend=vNewValue
EndIf
EndProperty
2、给组件增加属性和办法的其他路子
1.增加属性最复杂的一种办法:增加大众变量,如上例最复杂的代码以下:
OptionExplicit
PublicaugendAsDouble‘增加augend属性
PublicaddendAsDouble‘增加addend属性
PublicFunctionPlus()AsDouble
Plus=augend+addend
EndFunction
可是,该办法只能设置可读/写属性,且不克不及对所赋值举行校验。假如仅需增加只读属性:在上例中,删除PublicPropertyLetaugend(ByValvNewValueAsDouble)历程,则augend便成了一只读属性,不克不及赋值。固然,若要增加只写属性,只需删除PropertyGet历程就能够了。
2.利用类天生器有用工具
VB6中另有一个增加属性和办法的工具:在“外接程序”菜单中,单击“外接程序办理器”,在跳出的外接程序办理器对话框当选择“VBClassBuilderUtility”,并在加载举动当选择“加载/卸载”。然后再在“外接程序”菜单中单击“类天生器有用工具”,您一看就会用。
3、告知你几个要注重的成绩
1.下面的例子是一个复杂得不克不及再复杂的组件,对照有用的组件一样平常都最少另有一个模块(Module)。
2.假如不当心,VisualBasic可发生“单线程”组件。
大概最多见的一个圈套就是利用了没有被计划为在ASP下运转的组件,如“单线程”组件。因而,请确保在“项目属性”页的“通用”选项卡大将线程模块设置为“单位线程”。
3.关于“范例不婚配”毛病。
一个好的倡议是最好声明Out参数为Variant,注重上例中没有如许设置。
4.关于全局变量的利用。
只管制止在组件中利用全局变量。在VisualBasic术语中,这暗示在尺度的.BAS模块中没有Public或Global变量。由于Global变量并非真正意义上的全局。每一个线程都有本人的正本,假如几种办法刚好在统一线程中实行,它们将看到不异的变量;不然它们会见的是这些变量的分歧正本。这意味着您大概给一个全局变量赋了值(在线程A中),但其另外一个用户(在线程B中实行)看不到新值。其缘故原由是VisualBasic外部利用“线程当地存储(TLS)”来援用全局变量。这意味着每一个线程都有本人的Public变量的正本,而且由于它存在多个正本,全局数据并非真正“全局的”。也就是说,刚好在统一线程中运转的用户才会会见到统一个变量,不管他们是不是希冀云云。
最初特地提一下,VB6.0引进了一种全新的VisualBasic使用程序:IIS使用程序。你能够象创立ActiveXDLL一样创立IIS使用程序,任何用ActiveServerPages创立的使用程序都能够在VB开辟情况中创立,你能够用单个的VB使用程序完整替换一切的ActiveServerPages在实现ERP等高端的ASP应用时,用户需要提供核心的经营资料,需要ASP商有很高的信用度。楼上说交互性不好,太牵强了吧。在微软提供的一套框架中,利用asp做网站,开发效率高,使用人数少,减少不必要的开销。交互性是互动方式,是有开发人员决定的。 |
|