Цитата:
Сообщение от axline
Столкнулся с интересной вещью: при объявлении динамического массива как статического все работает
//здесь 0..2 - количество столбцов в матрице (всего 3 столбца)
Tsize_tArray=array [0..2] of size_t;
Но как быть, если размер массива переменный? Например, я не знаю в дизайнтайме, какой размер у матрицы. Ставить заведомо большее число нельзя - dll читает конкретное количество записей. Можно ли как-нибудь поменять размер передаваемого массива (без перекомпиляции =) )?
|
>нельзя - dll читает конкретное количество записей...
Dll ничего не знает о размере Tsize_tArray. Она получает только указатель на первый элемент массива. Сколько элементов у массива - должно передаваться отдельным параметром. Этот размер нужен только для обмана компилятора Dlelphi, что бы не ругался на выход за границу массива. А использование
array of size_t - это compiler magic, которая может сработать только при использовании Delphi и Builder одной версии, и то с оговорками.