ASP通过VB编译成DLL,类间调用onstarpage不执行的解决方法

本文介绍如何使用ASP调用通过VB编译成的COM+DLL,并实现类之间的调用。详细展示了通过new实例化类时Class_Initialize的执行流程及如何在ASP页面中调用DLL中的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

asp通过vb被编译成dll,asp通过server.create("你的工程.你的类")方式调用,调用时会先执行onstartpage,但是如果dll的一个类需要调用另外一个类时需要通过 dim 变量 as new 你的类,此时并不会执行onstartpage ,类初始化的时候会执行另外一个过程Class_Initialize。

我们需要引入ASP Type Library和 the COM+ Services Type Library

假设我们工程名叫comtest,类叫hellowold

Private objContext As COMSVCSLib.ObjectContext '引入com+库 Private Response As Response Private Request As Request Private Session As Session Private Application As Application Private Server As Server Private goaler As Scripting.Dictionary Private conn As Connection Private Sub Class_Initialize() '类初始化new时执行 Set objContext = GetObjectContext() Set Response = objContext("Response") ' Obtain ASP Response object Set Request = objContext("Request") ' Obtain ASP Request object Set Session = objContext("Session") ' Obtain ASP Session object Set Application = objContext("Application") ' Obtain ASP Application object Set Server = objContext("Server") ' Obtain ASP Server object Set conn = New Connection End Sub Private Sub Class_Terminate() '类销毁是执行 '----- Release object variables Set ObjectContext = Nothing Set Request = Nothing Set Response = Nothing Set Session = Nothing Set Application = Nothing Set Server = Nothing Set conn = Nothing End Sub Public Sub SayHello Response.write("Hello !") End Sub

这样的的话我们可以直接在asp页面里这样执行

set ts=server.createobject("comtest.text") ts.SayHello set ts=nothing


也可以在另一个类中这样执行

dim ts as new test ts.SayHello
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值