【问题标题】:Error: Variable uses an Automation Type not supported in VBScript错误:变量使用了 VBScript 不支持的自动化类型
【发布时间】:2017-01-19 11:59:26
【问题描述】:

我正在使用 Microsoft 脚本控件 (IScriptControlPtr 接口) 在 C++ 中执行一个 VBScript 函数。

VBScript 函数:

Function Add1(a,b)
   Add1 = a+b
End Function

我需要将 unsigned long 值传递给参数ab

所以我将参数数据类型指定为VT_UI4。但是在执行该函数时,我收到错误“Variable uses an Automation Type not supported in VBScript”。

根据我的要求,如何处理 unsigned long 值?

【问题讨论】:

  • 只要您不尝试对它们进行数学运算,它们就如同您设置的那样。重要的是如何解释整数。所以A = &hffffffff。如果您尝试在 VBScript 中使用它,则为 -1。但是,如果您不尝试将其用作数字,它仍然具有价值。如果传递给一个函数,只需传递它。 VBScript 会认为您传递了 -1,并且该函数将获取 2^30 的无符号整数所具有的位。

标签: c++ vbscript


【解决方案1】:

VBScript 仅支持有符号的 2 字节和 4 字节整数。所以你必须把你的参数改成VT_I4,或者使用UnsignedToLongLongToUnsigned这样的类型转换函数。有关其他信息,请参见下文。

【讨论】:

  • 是的,但您至少可以参考 VBScript 而不是 Visual Basic for Applications,它们不是相互排斥的。在这种情况下,信息是正确的,但这里是 VBScript documentation 供参考。
猜你喜欢
  • 1970-01-01
  • 2019-04-27
  • 1970-01-01
  • 1970-01-01
  • 2010-12-11
  • 2013-11-20
  • 2022-08-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多