Вниз
Скачать: 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.034 c
3-1159875254
jiny
2006-10-03 15:34
2006.12.10
Out of Memory при формировании отчета в FastReport 3


2-1164370211
koha
2006-11-24 15:10
2006.12.10
Как правильно удалить Строку в StringGrid?


2-1164018221
werb
2006-11-20 13:23
2006.12.10
Win32 console и сообщения


15-1163702729
kassel*666*
2006-11-16 21:45
2006.12.10
Срочняк РГЗ


15-1163701134
Chort
2006-11-16 21:18
2006.12.10
День студента




   Наверх