Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.08.29;
Скачать: [xml.tar.bz2];

Вниз

Вызов функции из 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.007 c
6-95925
yps12
2002-06-18 13:55
2002.08.29
NMPOP3 (получить attachment s )


14-95946
Cola
2002-07-27 21:47
2002.08.29
Как ИМЕННО беспла зарегестрировать EhLib.


4-96006
Новенький в Делфи
2002-06-23 00:34
2002.08.29
SendMessage() отправляет два сообщения


1-95901
Teron
2002-08-18 20:25
2002.08.29
Не могу найти ответы на следующие вопросы... Может, плохо ищу?


14-95956
Malder
2002-07-30 00:21
2002.08.29
Красивые формы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский