Показать сообщение отдельно
  #1  
Старый 29.11.2016, 11:44
vectorj vectorj вне форума
Прохожий
 
Регистрация: 29.11.2016
Сообщения: 5
Версия Delphi: Rad Studio XE2
Репутация: 10
По умолчанию Передача массива в DLL

Добрый день, столкнулся с проблемой передачи массива в DLL (сама DLL написана на С). Суть в том, что в одном из параметров процедуры должен получится массив с данными.

Описание процедуры в интерфейсной части:
function nc_get_vara_double (ncID: integer;varID: integer;start: pointer;count: pointer;var arr: pointer):integer; cdecl; external 'netcdf.DLL';
arr - это и есть желаемый массив.

в самой программе вызывается так:
var ptr: pointer;
start,count: Array of int64;
hgtId: integer;
....
err:=nc_get_vara_double(ncID,hgtID,start,count,ptr );

если я хочу получить 1 число, то проблем нет, все работает. А вот если я хочу получить вектор или матрицу то получаю следующее:


Описание самой процедуры: http://www.unidata.ucar.edu/software/netcdf/docs/group__variables.html#ga3b772c0982850cb0af3a8d1c53 c81d46
Ответить с цитированием