Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.021 c
4-1099742073
_Delphin_
2004-11-06 14:54
2004.12.19
Как сделать панель задач?


14-1102004331
vidiv
2004-12-02 19:18
2004.12.19
Одна девушка...


4-1099409218
Vladik
2004-11-02 18:26
2004.12.19
Что тут неверно в функции API


1-1101906164
cvg
2004-12-01 16:02
2004.12.19
Почему показывает график только после выхода из проги???


1-1102190333
olookin
2004-12-04 22:58
2004.12.19
Тип в модуле, компоненте и библиотеке




   Наверх