InstallShield 5.5 - 字符串数组
InstallShield 5.5 - Array of strings
我 "inherited" 我需要修改一个旧的 InstallShield 5.5 项目。
我需要做的一项更改涉及我必须填充的字符串列表。
我希望定义一个字符串数组。我试过这个:
STRING ListOfStrings[10];
但是当我尝试这个时:
ListOfStrings[1] = "test";
我收到一个错误:错误 C8038:需要数值
但这确实有效:
ListOfStrings[1] = 123;
看起来 ListOfStrings 的声明是一个字符数组,而不是一个字符串数组。
没错,符号 STRING str[10]
声明了一个包含 10 个字符的数组。 (STRING 本身是一个可调整大小的字符数组。)InstallScript 不是现代语言。它有点像 C 和 VB 之间的交叉,但改变了几件事。如果你想要一个字符串列表,你可能需要使用 List Processing Functions,特别是声明和创建一个字符串列表:
LIST lst;
STRING szString;
// : : :
lst = ListCreate(STRINGLIST);
szString = "test";
ListAddString(lst, szString, AFTER);
// : : :
此外,您应该使用一些错误检查,如 ListAddString example 中所示。
在不太常见的情况下,声明一个 POINTER
对象数组(或在更高版本中可选地 WPOINTER
对象)可能很有用。 (如果您认为可能有必要,请更新您的问题)。
我 "inherited" 我需要修改一个旧的 InstallShield 5.5 项目。 我需要做的一项更改涉及我必须填充的字符串列表。 我希望定义一个字符串数组。我试过这个:
STRING ListOfStrings[10];
但是当我尝试这个时:
ListOfStrings[1] = "test";
我收到一个错误:错误 C8038:需要数值
但这确实有效:
ListOfStrings[1] = 123;
看起来 ListOfStrings 的声明是一个字符数组,而不是一个字符串数组。
没错,符号 STRING str[10]
声明了一个包含 10 个字符的数组。 (STRING 本身是一个可调整大小的字符数组。)InstallScript 不是现代语言。它有点像 C 和 VB 之间的交叉,但改变了几件事。如果你想要一个字符串列表,你可能需要使用 List Processing Functions,特别是声明和创建一个字符串列表:
LIST lst;
STRING szString;
// : : :
lst = ListCreate(STRINGLIST);
szString = "test";
ListAddString(lst, szString, AFTER);
// : : :
此外,您应该使用一些错误检查,如 ListAddString example 中所示。
在不太常见的情况下,声明一个 POINTER
对象数组(或在更高版本中可选地 WPOINTER
对象)可能很有用。 (如果您认为可能有必要,请更新您的问题)。