Вниз
Скачать: 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.047 c
11-1140213317
rainstuff
2006-02-18 00:55
2006.12.10
Скачивание URL из инета с использованием KOL


15-1164109758
Семен Сорокин
2006-11-21 14:49
2006.12.10
Защита программы


15-1163862282
oxffff
2006-11-18 18:04
2006.12.10
Исправляем баги в Delphi.


6-1153375981
BloodNV
2006-07-20 10:13
2006.12.10
Сокеты и события


2-1164561641
Busik
2006-11-26 20:20
2006.12.10
Мой вопрос про изменение атрибутов файлов




   Наверх