VBScript 通过引用 (VarPtr) 将值传递给 ActiveX 函数

VBScript passing value by reference (VarPtr) to ActiveX function

我正在尝试这个:

  Dim oApp
  Dim iReturnedResult

  Set oApp = CreateObject("Some.Application")
  Set F_Ord = oApp.Documents.Open("Window 1", VarPtr(iReturnedResult))

ActiveX 控件期望第二个参数是一个 Long by reference。

这在 Excel VBA 中非常有效。 我可以 运行 这一步一步,然后看到返回的结果是应该的。

但是,当我将此代码移动到一个 VBS 文件并从命令行 运行 它时 (CScript.exe),我得到一个错误 800A000D ,这意味着它是错误的类型。

我也尝试过创建一个数组,并使用这些命令进行了测试,但没有成功:

Set F_Ord = oApp.Documents.Open("Window 1", VarPtr(iReturnedResult(0)))
Set F_Ord = oApp.Documents.Open("Window 1", iReturnedResult(0))

有谁知道如何通过引用 VBScript 中的 ActiveX 控件来传递长变量?

简单的回答是 VarPtr() VBScript 不支持。

据我所知,没有允许您传递指向变量内存地址的指针的等价物。


有用的链接