2016-07-29 5 views
1

Я «унаследовал» старый проект InstallShield 5.5, который мне нужно изменить. Одно изменение, которое мне нужно сделать, включает список строк, которые я должен заполнить. Я ищу, чтобы определить массив строк. Я попытался это:InstallShield 5.5 - Массив строк

STRING ListOfStrings[10]; 

Но когда я пытаюсь это:

ListOfStrings[1] = "test"; 

Я получаю сообщение об ошибке: C8038 ошибка: числовое значение, требуемое

Но это действительно работает:

ListOfStrings [ 1] = 123;

Похоже, что объявление ListOfStrings имеет массив символов, а не массив строк.

ответ

1

Правильно, обозначение 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 объектов в более поздних версиях). (Обновите свой вопрос, если вы считаете, что это может быть необходимо).