Witam
Mam nadzieje ze uda mi sie czytelnie to przedstawic
mam w bibliotece dll taką procedurkę
Function ReadIniInteger(PlikIni: PCHar;Kategoria: PCHar;Element: PCHar;Domyslnie:Integer):Integer; stdcall;
var
Ini: TIniFile;
Sciezka:String;
begin
Sciezka:=ExtractFilePath(ParamStr(0))+ PlikIni;
Ini := TIniFile.Create(Sciezka);
with Ini do begin
Result := ReadInteger(Kategoria,Element,Domyslnie);
end;
Ini.Free;
end;
a potem wy<ort>kozystuje</ort> ją w programie
Begin
var
DLL : THandle;
ReadIniInteger : Function (PlikIni: PCHar;Kategoria: PCHar;Element: PCHar;Domyslnie:Integer):Integer;
begin
DLL := LoadLibrary('Proc.dll');
try
@ReadIniInteger := GetProcAddress(DLL, 'ReadIniInteger');
if @ReadIniInteger = nil then raise Exception.Create('Bład - nie mogę znaleźć proceudry w bibliotece!');
Form_Main.BmpTrackBar1.Position := ReadIniInteger(PChar('Bar.Ini'),PChar('Window'),PChar('TrackBarPos'),50);
finally
FreeLibrary(DLL);
end;
błąd Acces violation znika jezeli zmienie w procedurze z biblioteki SCIEZKA na nazwę pliku np. 'c:\Bar.ini'
kod ten wy<ort>kozystywany</ort> byl juz w procedurach z osobnego unitu i nie sprawial problemow.gdzie robie błąd?