其他方法
方括号中的参数是可选的。作为一般规则,如果后面存在参数,则不能省略前面参数。唯一的例外是 NumGet、NumPut、StrGet 和 StrPut 中的 Offset 参数。它可以从参数列表的中间省略(连同它的逗号)。ArrPtr( Array ) — 返回指向数组的 SAFEARRAY 结构的指针。
- Array — 一个数组变量。不适用于 JScript 数组,因为它们实际上是对象。
LastError( [Flag] ) — 如果刚才调用的函数是用 "l" 标志注册的(最后一个错误),则该方法将得到在注册函数返回后立即调用 GetLastError API 的错误代码。
- Flag — 如果设置为 1,该方法将返回错误的文本描述。
在调用注册函数之前,此代码通过 SetLastError(0) 设置为 0。在函数的文档中可以查看它是否设置了此代码,并且检查它是否有意义。
- Bytes — 内存块的大小,以字节为单位。
- ZeroMem — 如果设置为 1,内存将被二进制零填充。
- MemPtr — MemAlloc 返回的指针。
- Address — 内存区块的地址。
- Bytes — 块的大小,以字节为单位。
- SrcAddr — 源地址。
- DestAddr — 目标地址。
- Bytes — 要复制的字节数。
块可以重叠。
返回值将是最后写入字节之后的地址。
- Address — 内存区块的地址。
- Bytes — 块的大小,以字节为单位。
- BytesPerGroup — 每组中的字节数。
- GroupsPerLine — 每行的组数。
组将由空格分隔,行由换行符 (CRLF) 分隔。
- HexStr — 源字符串。
- DestAddr — 目标地址。
- Bytes — 要写入的字节数。如果省略或设置为 0,则写入整个字符串。
在十六进制字符串中,每个字节由两个字符表示。该字符串可以包含 RegisterCode 方法允许的空格、制表符、换行符和注释。
返回值将是最后写入字节之后的地址。如果 DestAddress 为 0,则该方法返回十六进制字符串的二进制表示所需的缓冲区大小(以字节为单位)。如果您写的是整个字符串并且其中包含空格等,而这些空格将不会写入,这将很有用。
- Address — 要读取的地址。
- Offset — 从地址的字节位移,正或负;默认为 0。
- Type — 检索到的号码的类型(请参见 此处的列表);"l" 默认情况下。只能使用输入类型。
该数字被放入方法返回的值中。
- Var — 文字数字或持有它的变量的名称。
- Address — 要写入的地址。
- Offset — 从地址的字节位移,正或负;默认为 0。
- Type — 号码的类型(请参阅 此处的列表); "l" 默认情况下。只能使用输入类型。
该方法的返回值将是最后一个写入字节之后的地址。
- Object — 一个对象变量。
- ObjGet( ObjPtr ) — 通过指向对象的指针检索对象。
- ObjPtr — 指向对象的指针。如果对象支持 IDispatch 接口,则返回 VT_DISPATCH 变量,否则返回 VT_UNKNOWN。对象的引用计数器递增。
- Var — 一个字符串变量。
- Type/Codepage — 目标字符串的类型或编码。可以是:w(默认)、s、z (点 这里 查看它们的含义);一个代码页,例如 "cp1252";代码页名称,例如 "UTF-8"、"UTF-16BE"。如果该方法不知道名称,它将在注册表项 HKEY_CLASSES_ROOT\MIME\Database\Charset 下查找它,因此您可以将其子键的名称用于此参数。对于 s、z 或代码页,字符串先前已原地转换。
如果结果字符串不适合原始字符串的缓冲区,它将被截断。由于原始文件是 Unicode,每个字符占用两个字节,因此在大多数情况下会有足够的空间。也许某些东亚文本在 ANSI 或 UTF-8 编码中可能比在 UTF-16 中更长,但我只是猜测。
获取这样的指针是否有意义,取决于脚本引擎在将字符串传递给方法时是否复制字符串。如果是这样,您将得到一个指向临时副本的指针,这是无用的。
- Address — 要读取的地址。
- Offset — 从 Address 字节位移,正或负;默认为 0。
- Type/Codepage — 源字符串的类型或编码。有关选项,请参阅 StrPtr。
- Address — 要写入的地址。
- Offset — 从 Address 字节位移,正或负;默认为 0。
- Type/Codepage — 目标字符串的类型或编码。有关选项,请参阅 StrPtr。
该方法返回字符串的空终止符之后的地址。如果将 Address 设置为 0(Offset 也为 0 或省略),该方法将返回目标字符串所需的缓冲区大小(以字节为单位),包括终止空字符。
- Count — 字符串中 Unicode(两字节)字符的数量。
- Char — 用于填充字符串的字符。默认情况下,字符串用空格填充,就像 VBScript 中的 Space 函数一样。要使用空值而不是空格,请将 Char 指定为空字符串 ("")。
注意:此方法最初是为创建内存缓冲区字符串而设计的,用于数字、结构体或输出字符串。然而,实践表明这种技术通常是不安全的。你永远不知道脚本引擎将如何处理分配给字符串的内存;换句话说,您无法完全控制它,并且您存储在其中的数据可能会丢失或损坏。出于这个原因,我建议使用 MemAlloc 来分配内存。
- Variable — 脚本变量。在通过引用将变量传递给方法的语言中,例如 VBScript,您将获得一个指向变量 VARIANT 的指针;在那些按值传递的函数中,比如 JScript,它将成为指向临时副本的指针,因此是无用的。
- Field — 将其设置为下表中的适当值。如果省略 Field,则等于 0。
假设完整版本为 2.5.7.10。
0 — 版本字符串:"2.5.7.10"
1 — 主要版本号:2
2 — 次要版本号:5
3 — 内部版本号:7
4 — 修订号:10 (0xA)
5 — 主要 + 次要版本号:0x20005
6 — 内部版本+ 修订号:0x7000A
7 — 完整版本号:0x200050007000A
如您所见,每个字段都是一个 16 位整数,占用两个字节。