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

Вниз

Можно ли вернуть из 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.041 c
1-1101965467
Pupkov
2004-12-02 08:31
2004.12.19
Поиск проседуры в runtime пакетах


14-1101580285
TButton
2004-11-27 21:31
2004.12.19
Хотите узнать что чувствует человек после 69 часов бодрствования?


1-1101903593
Aser
2004-12-01 15:19
2004.12.19
Подскажите плз готовый компонентик Rich/Memo с подсветкой HTML


9-1092690879
gg_no_re
2004-08-17 01:14
2004.12.19
Как отключить Vsync


1-1102411406
mega
2004-12-07 12:23
2004.12.19
Дорисовка PopupMenu





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