gpt4 book ai didi

com - VBScript "Type Mismatch"问题与 "[in, out] BSTR * "参数

转载 作者:行者123 更新时间:2023-12-01 15:03:57 25 4
gpt4 key购买 nike

我正在使用第三方 COM 对象,该对象的一些方法将值作为 BSTR 指针传回。由于 VBscript 仅支持 Variant 类型,尝试以类似 Object.Method(sMyString) 的方式使用会合理地以“类型不匹配”错误结束。

我怀疑此错误是由 COM 对象本身而不是 VBscript 解释器生成的,因为该对象获取的是字符串而不是指针。我尝试解决它定义字符串数组,但它仍然是相同的错误。

所以我想知道是否有人遇到类似的问题以及使用了哪些解决方法。

只是为了强调。我无法控制 COM 对象。它在供应商的应用程序中。我必须“按原样”使用它。

谢谢你,阿尔伯特·加里耶夫

最佳答案

与其他语言相比,VBScript 允许使用的类型规则有点受限。就您而言,您有 [in, out] BSTR * - 这是不受支持的。 [out] 参数允许的唯一类型是 VARIANT *。 VBScript 要求类型为 [out, retval],以便支持该位置的 BSTR 类型。当然,每个函数只能有一个 [retval],因此这有些限制。

无论如何,在您的情况下,您都会陷入困境,因为您无法修改服务器代码。我要做的就是用 C++ 编写一个 COM 包装器,将 API 包装成您可以调用的东西。 COM 包装器可以将 [out] BSTR * 更改为 [out] VARIANT * 或其他可用的内容。

关于com - VBScript "Type Mismatch"问题与 "[in, out] BSTR * "参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1241076/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com