Вниз
Скачать: 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.03 c
15-1163765840
Petrovskyi
2006-11-17 15:17
2006.12.10
Документация по 1С в Инете


8-1146034876
Devider
2006-04-26 11:01
2006.12.10
Изменение размера изображения при видеозахвате.


2-1163881777
Ingwar
2006-11-18 23:29
2006.12.10
Автоскролинг в ListBox e


2-1164192623
pyJIoH
2006-11-22 13:50
2006.12.10
Юникод. Сигнатура UTF-8.


2-1164040438
Vasiliy
2006-11-20 19:33
2006.12.10
Как обработать WM_NCMOUSEMOVE на не клиентской области?




   Наверх