如何在模块中使用对象?
我作了一个DLL,有一个类模块和一个模块,在类模块中已经定义了RESPONSE这个对象,并且可以正常使用了,然后我在另一个模块中放入一个函数,该函数使用到RESPONSE这个对象,我在类模块中调用这个函数,结果无法运行起来,提示:需要对象
请问如何处理?
类模块(Main)代码如下:
Public Context As ScriptingContext
Public Response As Response
Public Sub OnStartPage(PassedScriptContext As ScriptingContext)
Set Context = PassedScriptContext 'Asp运行环境对象
Set Response = Context.Response
End Sub
Sub getuser()
Func.alertm ("大家好!")
End Sub
模块(Func)代码如下:
Public Sub alertm(ByVal msg As String)
Response.Write ("<script>alert('" & msg & "')</script>")
End Sub
问题点数:20、回复次数:7Top
1 楼Hassle()回复于 2005-04-03 22:17:20 得分 20
public YourObject as YourClass
set YourObject= new YourClass
我估计你漏写了,所以提示:需要对象Top
2 楼yyytoyyy(小海)回复于 2005-04-03 22:39:52 得分 0
public YourObject as YourClass
set YourObject= new YourClass
是引用哪个对象?
这个问题的关键是模块(Func)里的这一句:Response.Write ("<script>alert('" & msg & "')</script>")
没有这一句就正常了。
response这个对象我在类模块(Main)里已经定义了,类模块用到了标准模块(Func)里的函数,而标准模块里的函数又用到了response这个对象,如果我在标准模块里又定义一遍response,肯定重复了。
Top
3 楼Hassle()回复于 2005-04-03 22:44:06 得分 0
类模块(Main)就是YourClass
YourObject.Response.Write("<script>alert('" & msg & "')</script>")
Top
4 楼yyytoyyy(小海)回复于 2005-04-03 22:53:29 得分 0
按照这样添加,就变成这样的提示:
未设置对象变量或 With block 变量.
Top
5 楼Hassle()回复于 2005-04-03 22:56:30 得分 0
先运行这个
Public Sub OnStartPage(PassedScriptContext As ScriptingContext)
Set Context = PassedScriptContext 'Asp运行环境对象
Set Response = Context.Response '!!!!!!!
End SubTop
6 楼yyytoyyy(小海)回复于 2005-04-03 23:16:23 得分 0
首先感谢Hassle()的耐心回答!
Public Sub OnStartPage(PassedScriptContext As ScriptingContext)
Set Context = PassedScriptContext 'Asp运行环境对象
Set Response = Context.Response '!!!!!!!
End Sub
事实上整个类以及生成的DLL都能运行很正常,在类模块里进行Response.Write也很正常,但是我不想所有的东西都放在一个类模块里,而是想把他们分类写入各个标准模块里,然后引用他们,才出现这个问题的。大部分分流到标准模块里的函数也能用,但是就是涉及到response这个对象就不能用。
Top
7 楼yyytoyyy(小海)回复于 2005-04-04 00:15:13 得分 0
笨人想到一个笨办法,把原来在类模块声明的对象搬到标准模块里去声明,问题居然解决了,开心。
就是以下这些东西了:
Public Context As ScriptingContext
Public Response As Response
Top




