Форум: "Начинающим";
Текущий архив: 2006.12.10;
Скачать: [xml.tar.bz2];
ВнизПередача пользовательского типа из функции в 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 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.12.10;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.043 c