Главная страница
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.045 c
14-1101538365
Knight
2004-11-27 09:52
2004.12.19
Почему винда читает компакты хуже доса?


3-1100784986
Игорь Писанко
2004-11-18 16:36
2004.12.19
Открыть .dbf без индекса


1-1101907688
Артем Владимирович
2004-12-01 16:28
2004.12.19
Как блокироваться сочетание клавиш CTRL+N?


6-1097097094
Jeka
2004-10-07 01:11
2004.12.19
FTP протокол


14-1101190656
АрияРок
2004-11-23 09:17
2004.12.19
Ария - СУПЕР!!!