1

我在我的 VBScript 中调用了第三方 COM 函数。方法签名如下:

HRESULT  ParseXML ([in] BSTR *textIn,[in] VARIANT_BOOL *aValidateIn,[out, retval] MSXML2.IXMLDOMDocument2 **aXMLDocOut)

在我的 VBScript 中,以下调用返回类型不匹配:

Dim someText
someText = "Hello"
Dim response
response = ParseXml(someText, False)

但是传入字符串文字可以正常工作:

Dim response
response = ParseXml("Hello", False)

任何想法我需要在 VBScript 方面做什么?

4

2 回答 2

1

BSTR已经是一个指针。
BSTR*因此是指向指针的指针。

也就是说,您通过引用 ( ByRef textIn As String) 传递一个字符串。

通过引用传递变量时,类型必须匹配。someTextVARIANT

如果您只传递BSTR( ByVal textIn As String),VB 将为您处理转换。

任何想法我需要在 VBScript 方面做什么?

如果您确定这是您要修复的脚本,而不是库,则欺骗 VB 使用将由 ref 传递的临时变量:

response = ParseXml((someText), False)
于 2011-07-08T07:31:53.203 回答
0

你真的写ParseXml(somText, False)在你的剧本里吗?那么这是一个错字;它应该是someText

于 2011-07-08T07:37:28.230 回答