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

Вниз

Структура как возвращаемое функцией значение   Найти похожие ветки 

 
qwerty2   (2003-11-03 22:53) [0]

Есть следующая структкра:
type
My_Record = record
Name1 : string;
Name2 : string;
Name3 : string;
end;

В одной dll описывается функция возвращающая эту структуру:

function GetMyRec:MyRecord; export; safecall;
var rr:MyRecord
begin
//заполнение всех полей например rr.Name1:="dfsdfsdfsd";
GetMyRec:=rr;
end;

из другой программы вызываю эту функцию

...
type
proc=Function:My_Record;
...
var
hd:THandle;
p:proc;
RValue2:My_Record;
...
hd:=LoadLibrary("MyDll.dll");
@p:=GetProcAddress(hd,"GetMyRec");
RValue2:=p;

после выполнения этих действий структура RValue2 остается незаполенной! в чем ошибка?


 
Dimaxx ©   (2003-11-04 00:40) [1]

Поставь так...

PMy_Record = ^My_Record;
My_Record = record
Name1: string;
Name2: string;
Name3: string;
end;

...и передавай в длл не запись, а указатель на запись. Тада передаваться будет тип pointer, а это удобнее. В длл присваивание выполняй что-то типа этого

var X: PMy_Record;
...
X^.Name1:="111";
X^.Name2:="222";
X^.Name3:="333";

И вообще используй не string, а shortstring. И все будет хоккей.


 
Bart   (2003-11-04 19:41) [2]

поставь uses ShareMem dв проекте и в в dll



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

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

Наверх




Память: 0.47 MB
Время: 0.022 c
1-41281
sagchat
2003-10-31 13:41
2003.11.13
Как поменять символы в обратном порядке?


3-41049
inspirion
2003-10-24 12:57
2003.11.13
Помогите советом!


1-41238
saurin
2003-10-31 14:05
2003.11.13
поиск DLL


6-41849
Michael_X
2003-09-12 10:30
2003.11.13
Определение удалённой ОС.


3-41041
diww
2003-10-14 16:38
2003.11.13
Помогите с запросом