Мне нужно чтобы программа используя функцию ДЛЛ получила некие данные! Но у меня не получаеться! Вылазит ошибка - Project мояпрога.exe raised exception EAcessViolation with message Acess violation at address 0B9CA09 in module "ProgSelect.dll". Read of address 8BC38B97'. Process stopped. Use step or run to continue.
Вот функция из Dll:
Код:
function Info: TStrings; StdCall;
begin
Result.Clear;
Result.Add('AUT=TB');
Result.Add('VER=1.00');
Result.Add('INF=Инфа о функции...');
Result.Add('PRS=NO');
end;
А вот процедура которая вызывает функцию Info из Dll и пытаеться произвести с ней действия:
Код:
procedure GetDllInfoPars;
var
HndDLLHandle: THandle;
Info: TInfo;
N: Integer;
S: String;
begin
N:=0;
try
S:=FMAIN.ACTL.Items.Strings[0]+'.dll';
HndDLLHandle:=LoadLibrary(PChar(S));
if HndDLLHandle<>0 then
begin
@Info:=GetProcAddress(HndDLLHandle,'Info');
if Addr(Info)<>nil then
begin
FMAIN.L.Items.Clear;
FMAIN.L.Items:=Info;
end
else Application.MessageBox('Function not exists...','RegVenik XP',MB_TOPMOST+MB_ICONERROR);
end
else
Application.MessageBox('DLL not found...','RegVenik XP',MB_TOPMOST+MB_ICONERROR);
finally
FreeLibrary(HndDLLHandle);
end;
end;
Ошибка возникает на строке
FMAIN.L.Items:=Info;
FMAIN - TForm
FMAIN.L - TListBox
FMAIN.ACTL - TComboBox
Плиз Хелп Ми!