Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.29;
Скачать: CL | DM;

Вниз

Вызов функции из DLL с передачей массива как параметра   Найти похожие ветки 

 
nikolo ©   (2002-08-08 14:11) [0]

У меня в основной программе объявлен тип:

type
TRec = record
Id: Integer;
Name: String[30];
end;
TARec = array of TRec;
var
ARec: TARec;


Мне нужна функция, которая обрабатывает этот массив, но она должна находится в DLL. Подскажите как я могу передавать в эту функцию параметр этого типа, т.е. что-то типа:

Function GetArrVal(Arr: ???): Integer; stdcall; external "my_lib.dll";

procedure TForm1.Button1Click(Sender: TObject);
var i: Integer;
begin
SetLength(ARec, 2);
ARec[0].Id := 10;
ARec[0].Name := "10";
i := GetArrVal(ARec);
end;


 
SaS13 ©   (2002-08-08 14:16) [1]

так и есть:
Function GetArrVal(var Arr: TARec): Integer; stdcall; external "my_lib.dll";
у себя в проге (откуда вызываешь), еще раз пропишешь тип:
type
TRec = record
Id: Integer;
Name: String[30];
end;
TARec = array of TRec;
единственное НО передаваемый динамич. массив не должен быть пустым, иначе вывалится с непонятной ошибкой


 
nikolo ©   (2002-08-08 14:54) [2]

А как в самой DLL объявить эту функцию?

function GetArrVal(var Arr: ? ): Integer; stdcall;
begin

end;


 
SaS13 ©   (2002-08-08 14:56) [3]

также выше пропиши все типы и так и объяви =)



Страницы: 1 вся ветка

Текущий архив: 2002.08.29;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.009 c
1-95773
Lamer86
2002-08-19 16:18
2002.08.29
Как склеить два файла


14-95966
cyborg
2002-08-04 08:29
2002.08.29
Специфичный опрос про хостинг ...


1-95789
Андрусь
2002-08-19 19:27
2002.08.29
Как програмно поменять раскладку клавиатуры.


7-95995
vap
2002-06-20 00:03
2002.08.29
Как получить адрес bitmap a экрана


6-95929
BlackSun
2002-06-21 05:41
2002.08.29
Глюки с отправкой письма, помогите, плиз.