Показать сообщение отдельно
  #5  
Старый 27.09.2011, 15:42
icWasya icWasya вне форума
Местный
 
Регистрация: 09.11.2010
Сообщения: 499
Репутация: 10
По умолчанию

Цитата:
Сообщение от 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 одной версии, и то с оговорками.
Ответить с цитированием