Форум: "Основная";
Текущий архив: 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.035 c