ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:18.96KB ,
资源ID:6131595      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6131595.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Asp组件初级入门与精通.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Asp组件初级入门与精通.docx

1、Asp组件初级入门与精通Asp组件初级入门与精通 2009-05-06 00:00 T|TAsp组件初级入门与精通系列之一一直以来,想写一些组件方面的应用,这段时间终于可以写一点自己喜欢的东西。希望大家通过这些教程学习后,可以随心所欲的写出自己的组件。每篇文章可能没有关联,只是写一些组件编写过程中出现的问题。欢迎大家批评指正环境:winxp+vb6+sp6+visual interdev6.0作为第一篇,我们先来写一个比较简单的组件完成的功能是:输入两个数相加,返回相加的结果打开vb6,新建Activex Dll工程。工程名修改为fCom,类名修改为fC1点击菜单-工具-添加过程我们在名称内输

2、入Add,类型选择函数,范围选择公有,然后确定即可生成如下代码,我们继续完善程序代码Option ExplicitPublic Function Add(ByVal a As Long, ByVal b As Long) As LongAdd = a + bEnd FunctionOk,一个简单的组件就写好了,点击菜单-文件-生成fCom.dll文件确定,在目录下就会有fCom.dll文件 测试打开visual interdev6.0,生成一个asp文件,为什么要使用interdev,因为它有代码提示功能,与vb的ide环境一致,方便书写程序代码配置好虚拟目录,在ie中执行此asp文件,得到结

3、果7 第一篇结束了,祝大家学习愉快。Asp组件初级入门与精通系列之二如何注册组件1regsvr32 组件的绝对路径如:程序代码regsvr32 c:testfc1.dll因为组件只要注册就可以使用了,所以与组件的位置无关。2在COM+组件管理器中注册什么时候需要这种注册:组件在使用了COM+的服务后需要注册后才能正常的执行。如果该组件仅仅regsvr32注册,仍然无法使用 如何使用组件程序代码set obj=server.createobject(“工程名.类名”)然后调用其方法属性 如何卸载组件1regsvr32 组件的绝对路径如:程序代码regsvr32 c:testfc1.dll /uu

4、参数反注册组件2COM+组件管理器中删除组件即可Asp组件初级入门与精通系列之三如何使用属性打开vb6,新建Activex Dll工程。工程名修改为fCom,类名修改为fC2点击菜单-工具-添加过程我们在名称内输入myName,类型选择属性,范围选择公有,然后确定再次操作:在名称内输入Age,类型选择属性,范围选择公有,然后确定再次操作:在名称内输入peopleInfo,类型选择函数,范围选择公有,然后确定即可代码如下:程序代码Option Explicit保持属性值的局部变量,只能在类中使用Private mvarmyName As StringPrivate mvarAge As Inte

5、gerLet写属性(Let属性: 该过程给一个属性赋值。)Public Property Let Age(ByVal vData As Integer)mvarAge = vDataEnd PropertyGet读属性(该过程获取一个属性的值。)Public Property Get Age() As IntegerAge = mvarAgeEnd PropertyPublic Property Let myName(ByVal vData As String)mvarmyName = vDataEnd PropertyPublic Property Get myName() As Strin

6、gmyName = mvarmyNameEnd PropertyPublic Function peopleInfo() As StringpeopleInfo = 姓名: & mvarmyName & 年龄: & mvarAgeEnd FunctionOk,一个简单的组件就写好了,点击菜单-文件-生成fCom.dll文件确定,在目录下就会有fCom.dll文件测试打开visual interdev6.0,生成一个asp文件,为什么要使用interdev,因为它有代码提示功能,与vb的ide环境一致,方便书写 程序代码%set obj=server.CreateObject(fCom.fC2)

7、 dim c这里调用的是组件的Let属性obj.myName =龙卷风obj.Age =20c=obj.peopleInfo() Response.Write c这里调用的是组件的Get属性Response.Write Response.Write obj.myNameResponse.Write Response.Write obj.Age %配置好虚拟目录,在ie中执行此asp文件,得到结果如下:姓名: 龙卷风 年龄:20龙卷风20未完待续Asp组件初级入门与精通系列之四数组问题数组在程序中使用的很多,而且比较容易出问题我们通过小例子来看看 打开vb6,新建Activex Dll工程。工程

8、名修改为fCom,类名修改为fC4点击菜单-工具-添加过程我们在名称内输入AcceptArray1,类型选择子程序,范围选择公有,然后确定再次操作:在名称内输入AcceptArray2,类型选择函数,范围选择公有,然后确定即可程序代码功能:传递数组地址到组件,使用ByRef关键字,并赋值返回Public Sub AcceptArray1(ByRef varray As Variant) As Variantvarray(0) = 龙卷风varray(1) = 20End Sub功能:返回一个字符串数组Public Function AcceptArray2() As VariantDim a(

9、2) as Varianta(0) = 龙卷风a(1) = 20AcceptArray2=aEnd FunctionOk,一个组件就写好了,点击菜单-文件-生成fCom.dll文件确定,在目录下就会有fCom.dll文件 测试打开visual interdev6.0,生成一个asp文件程序代码%dim objset obj = server.createobject(fCom.fC4)dim a(2)测试第一个组件方法obj.AcceptArray1(a)response.write a(0)response.write response.write a(1)response.write 测试

10、第二个组件方法dim bb=obj.AcceptArray2() for i=0 to ubound(b)Response.Write b(i)response.write next%配置好虚拟目录,在ie中执行此asp文件,得到结果如下:龙卷风20龙卷风20总结一下:字符串,数字通过值传递或者作为返回值被返回如果使用引用传递,将参数的类型设为Variant。这样做可以避免一些错误。不过尽可能的减少引用传递参数未完待续Asp组件初级入门与精通系列之五经常我们可以看到在连接数据库,打开记录集的时候,如下:程序代码rs.Open strsql, conn,adOpenDynamic ,adLock

11、Pessimistic在键入”,”的时候,后面会出现一个游标类型或者锁类型列表可以供选择。有时候我们为了简化,直接rs.open strsql,conn,1,3第一种方法是不是更加专业一些,我们来看看asp中如何实现打开vb6,新建Activex Dll工程。工程名修改为fCom,类名修改为fC5程序代码Option Explicit定义枚举类型Public Enum Interfacedigicfirst = 1icsecond = 2icthree = 3icfour = 4icfive = 5icsix = 6icserven = 7iceight = 8End Enum定义函数Publ

12、ic Function CallDat(ByVal idig As Integer, ByVal ics As Interfacedig) As VariantCallDat = idig * icsEnd FunctionOk,一个组件就写好了,点击菜单-文件-生成fCom.dll文件确定,在目录下就会有fCom.dll文件测试打开visual interdev6.0,生成一个asp文件程序代码%定义,还可以把这一部分放到一个文件中,就像ado的记录集const icfirst = 1const icsecond = 2const icthree = 3const icfour = 4con

13、st icfive = 5const icsix = 6const icserven = 7const iceight = 8set obj=server.CreateObject(fCom.fc5)这里可以使用iceight或者8,但是前者使代码具有更好的可读性a= obj.CallDat(4,iceight) Response.Write aResponse.Write a= obj.CallDat(4,8) Response.Write a% 配置好虚拟目录,在ie中执行此asp文件,得到结果如下:3232Asp组件初级入门与精通系列之六错误处理如果页面出错,而没有对错误的处理,那么页面

14、会显示一个用户可能看不懂的错误。在asp脚本中可以使用程序代码On Error Resume Nextif Err.Number0 thenResponse.Write Err.DescriptionEnd if但是如果组件中出错呢?这种方法可以捕获错误,但是具体的错误如何知道呢?我们可以在组件中加入错误处理,来返回错误,这样可以容易的看到更加详细的出错信息,有助于我们排除错误。使用Err.Raise, Raise 被用来生成运行时错误打开vb6,新建Activex Dll工程。工程名修改为fCom,类名修改为fC6程序代码Option ExplicitPublic Sub showerror

15、1()On Error GoTo ErrorHandleDim i As Doublei = 1 / 0ErrorHandle:Err.Raise Err.Number, Err.Source, Err.DescriptionEnd Sub生成自定义的错误Public Sub showerror2()Err.Raise 600, 自己定义的错误600, 这是描述自己程序的错误End SubOk,一个组件就写好了,点击菜单-文件-生成fCom.dll文件确定,在目录下就会有fCom.dll文件测试打开visual interdev6.0,生成一个asp文件程序代码%下面这一句很重要on erro

16、r resume nextset obj=server.CreateObject(fCom.fc6)obj.showerror1()如果没有错误处理,就会产生一个出错的界面,很不专业从 0512 的范围保留为系统错误;从 51365535 的范围可以用做用户定义的错误。如果是保留错误,那么组件内错误号和页面处理的错误号是相一致的if err.number 0 thenResponse.Write 错误信息 & err.number & err.Description end ifResponse.Write 如果是用户定义的错误,那么在页面中可以分别进行处理obj.showerror2()if

17、 err.number0 thenif err.number =600 thenResponse.Write err.number & err.Source & err.Description end ifend if%配置好虚拟目录,在ie中执行此asp文件,得到结果如下:错误信息11除数为零600自己定义的错误600这是描述自己程序的错误Asp组件初级入门与精通系列之七在运行前几章的例子,可能或多或少的都会碰上一些问题如:组件编译后,又要修改,发生”权限被拒绝,f:csdnfcom.dll”等等的错误。 当asp页面浏览时,打开任务管理器,会看到一个dllhost.exe,用户名为IWAM

18、_YANG的进程。IWAM_YANG会根据计算机名而有所不同。 可以使用以下几种方式来解决1 重新启动iis.在控制面板中找到管理工具-internet信息服务-右键点击左边树图第二层本地计算机-所有任务-重新启动IIS即可,这个操作需要一点时间。此时你可以看到这个dllhost.exe的进程已经关闭2 上面这种方法的缺点就是当前所有的网站都被关闭直到重新启动有没有针对单个网站或者虚拟目录的?有在控制面板中找到管理工具-internet信息服务-找到你的组件运行的虚拟目录。-右键属性-第一项虚拟目录中-应用程序保护-点击卸载即可。此时你可以看到这个dllhost.exe的进程已经关闭3 如果你觉得麻烦,直接在Windows任务管理器中结束该进程既可4 最后一种方法在控制面板中找到管理工具-组件服务-在树图中点击计算机,我的电脑,正在运行的进程-IIS Out-Of-Process Pooled Applications(2860)-右键关闭即可此时你可以看到这个dllhost.exe的进程已经关闭。本文来自: 站长之家() 详细出处参考:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1