您的位置:首页 > 编程语言 > ASP

使用VB写ASP组件的朋友,你还在用ByRef传递参数吗?

2010-04-21 19:36 393 查看
看看微软的推荐吧:http://support.microsoft.com/kb/244012/zh-cn
下面的代码示例说明了各种方案,从而导致

类型不匹配

与方法调用从 Visual Basic 脚本使用 Visual Basic COM 组件的活动服务器页面 (ASP) 错误。

[code]'VB Code : [Project=prjParam;Class=clsParam]
'By default, the parameter is passed 'ByRef'

Sub x( a as string )
a = "Changed"
End Sub

'ASP Code
k = "Hello"

'Create the above VB object

Set obj = Server.CreateObject("prjParam.clsParam")

obj.x k        'Type Mismatch error occurs

obj.x (k)      'Using PARANTHESIS forces 'ByVal' , 'k' does not change

Call obj.x (k) 'Type Mismatch error occurs

Call obj.x cstr(k)   'The CSTR function returns a string,
'the address of the variable (k) is not passed.
'The value of 'k' doesn't change

Set obj = Nothing

[/code]

在以下条件,可能会导致错误的另一个示例:

[code]'VB Code : [Project=prjParam;Class=clsParam]
'If you do not specify, by default the parameter is passed 'ByRef'
'Note: Parameter type is VARIANT

Sub y( a as variant )
a = "Changed"
End Sub

'ASP Code
k = "Hello"

'Create the above VB object

Set obj = Server.CreateObject("prjParam.clsParam")

obj.y k        'changes 'k'

obj.y (k)      'Using PARANTHESIS forces 'ByVal' , 'k' doesn't change

Call obj.y (k) 'changes 'k'

Set obj = Nothing

[/code]



回到顶端


更多信息
VBScript 仅支持 VARIANT ByRef 参数。 您可以使用 VBScript 调用一个过程,该过程将 ByRef 字符串,但使用 Visual B...

有关更多的信息请单击下面文章编号,以查看 Microsoft 知识库中相应的文章:
197957 (http://support.microsoft.com/kb/197957/EN-US/ ) 通过到 VC COM 对象的引用 PRB: 传递参数
197956 (http://support.microsoft.com/kb/197956/EN-US/ ) 通过到 VB COM 对象的引用 PRB: 传递参数
174576 (http://support.microsoft.com/kb/174576/EN-US/ ) HOWTO: 返回在 ASP 的服务器端对象中的数组
218454 (http://support.microsoft.com/kb/218454/EN-US/ ) HOWTO: 实现数组参数在 VC COM 对象的活动服务器页面
217114 (http://support.microsoft.com/kb/217114/EN-US/ ) HOWTO: 实现数组参数在 Visual Basic COM 对象的活动服务器页面


回到顶端


这篇文章中的信息适用于:

Microsoft Active Server Pages 4.0

Microsoft Visual Basic 5.0 学习版

Microsoft Visual Basic 6.0 学习版

Microsoft Visual Basic 5.0 专业版

Microsoft Visual Basic 6.0 专业版

Microsoft Visual Basic 5.0 企业版

Microsoft Visual Basic Enterprise Edition for Windows 6.0



回到顶端


关键字:
kbmt kbcodesnippet kberrmsg kbinfo KB244012 KbMtzh
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: