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

Вниз

Можно ли вернуть из DLL record?   Найти похожие ветки 

 
Adis Tadas   (2004-12-02 09:46) [0]

Здравствуйте, уважаемые специалисты !
Описал функцию DLL следующим образом:

TFr = function (var tar:  TRc):  integer ;

где:  
TRc = record
 sX: string ;
 nY: integer ;
end ;

В программе вызываю эту функцию:
 var
   Foo: TFr ;
   r:   TRc ;
   ..
   LoadLibrary("my.DLL");
   Foo := GetProcAddress(Handle, "FOO");
   Foo (r);  
   FreeLibrary(Handle);
   ..

В DLL:
 ..
 function FOO (var tar:  TRc):  integer ;
 var
   tar1:  TRc ;
 ..
 tar1 := tar ;
 ..
 // что-нибудь делаю с tar1
 tar1.sX := ".." ;
 tar1.nY := 22 ;
 ..
 // если в созданной форме нажали Ok
 if (ModalResult=mrOk) then
   tar := tar1 ;   // т.е. возвращаем измененное значение tar
                   // иначе tar не меняется
 >> но в этом месте (tar := tar1) выдается ошибка!

Скажите, в чем может быть дело ?
Заранее спасибо!


 
Digitman ©   (2004-12-02 09:59) [1]

большущий комментарий в тексте dll-проекта читал ?


 
MBo ©   (2004-12-02 09:59) [2]

Нужно прочитать комментарий, который Delphi вставляет в начале при создании DLL


 
ghg ©   (2004-12-02 10:26) [3]

о как синхронно :))


 
Erik1 ©   (2004-12-02 10:55) [4]

Или выкинь string и пользуйся String[10] а в DLL передавай указатель на Record.
PRC = ^TRc;

Var
 r:   TRc;
 MyPtr: PRC;
begin
 MyPtr := @r;
 ..
 Foo(MyPtr);
А в Dll
function FOO(const tar:  PRC): integer ;
tar.sX := "..";
Сколько на String выделить сам подумай, можно еще PChar использовать.


 
KSergey ©   (2004-12-02 11:28) [5]

> [4] Erik1 ©   (02.12.04 10:55)
> Или выкинь string и пользуйся String[10] а в DLL передавай
> указатель на Record.

Он и так указатель передает.



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

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

Наверх




Память: 0.48 MB
Время: 0.023 c
3-1100953359
Iova
2004-11-20 15:22
2004.12.19
rdb$...


8-1095174012
Zeqfreed
2004-09-14 19:00
2004.12.19
Flash и Стримы, есть аналог TFlashControl?


3-1101059264
DuchmanSoft
2004-11-21 20:47
2004.12.19
Фильтр или выборка в DBGrid


14-1101406105
Cerberus
2004-11-25 21:08
2004.12.19
lsass.exe


4-1099061385
landy
2004-10-29 18:49
2004.12.19
получение данных из чужого TListView