Вниз
Скачать: CL | DM;

Передача пользовательского типа из функции в DLL   Найти похожие ветки 

 
JetuS ©   (2006-11-21 13:50) [0]

Здравствуйте!

У меня такая беда: есть dll в которой есть функция, возвращающая данные пользовательского типа.


type
 TDLLVersionInfo = record
   HiVersion: Byte;
   LoVersion: Byte;
   Comments: String;
 end;

function ReadDLLVersionInfo: TDLLVersionInfo; stdcall;
var
 DLLVI: TDLLVersionInfo;
begin
 DLLVI.HiVersion   := 1;
 DLLVI.LoVersion   := 200;
 DLLVI.Comments    := "It""s a test comments string";
 Result := DLLVI;
end;


Вопрос: как мне теперь получить эти данные из этой DLL?


 
Сергей М. ©   (2006-11-21 13:54) [1]

var
 MyResult: TDLLVersionInfo;

..
MyResult := ReadDLLVersionInfo;


 
JetuS ©   (2006-11-21 14:03) [2]


> var
>  MyResult: TDLLVersionInfo;
>
> ..
> MyResult := ReadDLLVersionInfo;


Н-да. Сильно.

Я пробую в программе так:
type
  TReadDLLVersionInfo = function: TDLLVersionInfo; stdcall;
...

function GetDLLInfo: TDLLVersionInfo;
begin
 DllHandle := LoadLibrary(PAnsiChar(DLLFileName));
 if DllHandle < 32 then
 ...
 @ReadDLLVersionInfo := GetProcAddress(DllHandle, "ReadDLLVersionInfo");
 if @ReadDLLVersionInfo <> nil then
   Result := ReadDLLVersionInfo
 else ...;
 FreeLibrary(DllHandle);
end;


На FreeLibrary(DllHandle) вылетает AV.
Почему?


 
JetuS ©   (2006-11-21 14:05) [3]

Забыл дописать:
var
 ReadDLLVersionInfo: TReadDLLVersionInfo;


 
Сергей М. ©   (2006-11-21 14:06) [4]


> Почему?


Потому что Sharemem не задействован.


 
Игорь Шевченко ©   (2006-11-21 14:06) [5]

Уж сколько раз твердили миру - читайте то, что написано в файле с проектом dll


 
Орион ©   (2006-11-21 14:16) [6]

> [5] Игорь Шевченко ©   (21.11.06 14:06)

этож коммент, зачем его читать? :)



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

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



Память: 0.46 MB
Время: 0.026 c
15-1164103022
Mva
2006-11-21 12:57
2006.12.10
Не компилируется проект


1-1162125556
Yuiop
2006-10-29 15:39
2006.12.10
Конвертировать из Rave в *.doc


6-1153381513
s_pavell
2006-07-20 11:45
2006.12.10
Аудит принтера в сети


2-1164173301
Riply
2006-11-22 08:28
2006.12.10
Запись большого количества однотипных данных в Stream.


15-1164019936
Cyrax
2006-11-20 13:52
2006.12.10
Имеет ли C преимущества перед C++ в системном программировании




   Наверх