【发布时间】:2022-05-23 16:18:31
【问题描述】:
ActiveX 对象方法具有此签名。
long DirectIO(long Command, long* pData, BSTR* pString)
Int32 DirectIO(Int32, Int32 ByRef, System.String ByRef)
我正在尝试从 javascript 调用此方法。我尝试了很多组合,但总是收到“类型不匹配”错误。
参考链接:
-
calling COM method with Foo(..., [out] BSTR * value) from VBScript
-
VBScript "Type Mismatch" issue with "[in, out] BSTR * " parameter
-
https://developer.mozilla.org/en/Working_with_out_parameters
那么为什么 VBScript 会在这里产生类型不匹配错误呢? VBScript 没有!对象产生类型不匹配错误,VBScript 尽职尽责地报告。 Invoke 的对象实现调用 类型库为您提供的 Invoke 的默认实现 执行。那东西说“我有一个变体的参考, 那个变体是一个字符串。我需要一个字符串的引用。那是 类型不匹配。”
【问题讨论】:
标签: javascript dll activex opos