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

Вниз

Набор данных из DLL.   Найти похожие ветки 

 
АлексейК   (2003-05-26 05:46) [0]

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


 
Ru   (2003-05-26 10:14) [1]

record?


 
DiamondShark   (2003-05-26 11:27) [2]

Если обе ДЛЛ (или ДЛЛ и ЕХЕ) на Дельфи, то подключаем ШареМем и забываем про проблемы.

Если же не известно, на чём написан клиент, то сложнее. Тут вырианты могут быть такие:
1) Структуры распределяются самой библиотекой; ко всему, библиотека ещё предоставляет функции освобождения этих структур
2) Ответственность за распределение возлагаем на клиента.


 
АлексейК   (2003-05-26 12:33) [3]

Поясняю. Допустим функция из DLL должна вернуть нечто подобное.
TMyType = Record
f1:array of integer;
f2:array of integer;
f3:string;
f4:integer;
f5:array [1..10] of Double;
....
end;
То есть структурированный набор данных.
И если
a:array ...;
b:array ...;
то уже не получится a=b, к тому же они зашиты как поля рекорде. Следовательно нельзя присвоить переменной типа TMyType результат работы функции.


 
Palladin   (2003-05-26 12:42) [4]

ты не отметил ключевую подробность, dll и приложение у тебя написаны при помощи делфи?


 
Ru   (2003-05-26 12:53) [5]

function MyFunc(...):TMyType;stdcall; ?


 
АлексейК   (2003-05-26 13:00) [6]

>Palladin
На Delphi и только пока для Delphi.



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

Форум: "Потрепаться";
Текущий архив: 2003.06.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.008 c
14-35001
angel
2003-05-24 04:00
2003.06.12
Table unknown RDB$RELATIONS


1-34774
DMN
2003-06-01 14:51
2003.06.12
Размер приложения


1-34785
susp
2003-06-02 12:40
2003.06.12
QReport и разрыв группы при переходе на след. страницу


4-35111
anod
2003-04-14 14:25
2003.06.12
RowSelect в ListView


1-34878
Valentino
2003-05-31 16:57
2003.06.12
Как задать аттрибут





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский