ActiveX 对象方法具有此签名。
long DirectIO(long Command, long* pData, BSTR* pString)
Int32 DirectIO(Int32, Int32 ByRef, System.String ByRef)
我正在尝试从 javascript 调用此方法。我尝试了很多组合,但总是收到“类型不匹配”错误。
参考链接:
- 在 JavaScript 中使用“Out”参数
- 使用 Foo(..., [out] BSTR * value) 从 VBScript 调用 COM 方法
https://developer.mozilla.org/en/Working_with_out_parameters
- http://blogs.msdn.com/b/ericlippert/archive/2003/09/29/53117.aspx
那么为什么 VBScript 会在这里产生类型不匹配的错误呢?VBScript 没有!该对象产生类型不匹配错误,VBScript 尽职尽责地报告该错误。对象的 Invoke 实现调用类型库实现为您提供的默认 Invoke 实现。那东西说“我有一个变体的引用,那个变体是一个字符串。我需要一个字符串的引用。那是类型不匹配。”
- http://automation-beyond.com/2009/09/01/gp-automation-utilizing-com/
- http://support.microsoft.com/kb/244012