Так а чем не подходит вариант что я описал выше?
Пишем все нужные параметры в массив, будь они в файле или еще где. И не важно сколько их, пишем в начало массива. Потом дописываем в этот массив какоето число пустых элементов (0 или -1). Это число элементов = максимуму который возможен, будь то 100, 200 или 1000. И вызываем длл с этими всеми параметрами. В этой библиотеке уже читаем только те первые параметры, которые не "пустые".
Если этих параметров может быть реально много, то я думаю, ничего страшного не случится. Вызов можно в инклуд засунуть, чтоб не мешалась перед носом длиннющая строка.
Что то типа:
TFREADARR ("par.txt", $arr) //читаем все параметры из файла, сколько их, нам не извесно
//если они не в файле, то просто пишем по очереди в этот массив.
FOR($a=ARRSIZE($arr) ,$a < 20) //добавляем параметры до 20 элементов, возможно это и не требуется, на всякий случай
ARRPUSH($arr, 0) //если их может быть больше, пишем больше
END_CYC
//ну и вызов их всех
CALL("Plugin.DLL",$arr[0],$arr[1],$arr[2],$arr[3],$arr[4],$arr[5],$arr[6],$arr[7],$arr[8],$arr[9],$arr[10],$arr[11],$arr[12],$arr[13],$arr[14],$arr[15],$arr[16],$arr[17],$arr[18],$arr[19])
//а в самой длл, просто читаем попорядку параметры до то того у которого значение =0 (можно записывать не 0, а какое другое ненармальное значение, типа -1)
Мне больше ничего в голову не пришло
. Ну и плюс еще те, что ты сам предложил выше - передача через .ини или через другой файл.
К стати, таким способом можно и строки передавать
. Жаль что в ответ библиотека может отдать только 4 байта
, но опять же, никто передачу через файл не запрещает.
добавлено:Пока писал, вижу ты уже и сам решил, что так будет проще.
Буду передавать максимально возможное количество, а лишнее забивать 0.