Udalo mi sie zlokalizowac blad. Wcześniej ładowałem dynamicznie pewna biblioteke i to ona była powodem tego błędu. Jednakże przy ładowaniu, wywołaniu funkcji i zwolnieniu bibiloteki wszystko było w porządku. Czy mogłby mi ktoś wytłumaczyć dlaczego był taki dziwny ekekt ?? Czy ta biblioteka nadpisała obszar pamięci w ktorym znajdowały sie adresy do obiektów typu checkBox ??
Funkcja wywołująca funkcje z biblioteki:
function getTimeNet (day: integer; hour: integer) : boolean;
var
hLib : THandle;
GetTerm : TGetTerm;
aqq : integer;
aqw : boolean;
begin
hLib := LoadLibrary ('block');
Result := false;
try
if hLib > 0 then
begin
GetTerm := GetProcAddress (hLib, 'checkTerm');
if assigned (GetTerm) then
begin
aqw := GetTerm (Pchar(DIR), day, hour);
end;
end;
finally
FreeLibrary (hLib);
end;
Result := aqw;
end;
Przy czym typ wywoływanej funkcji też jest dobry.
Swój problem rozwiązałem bez ort! z tej biblioteki- jednakże zastanawia mnie co sie dokladnie stalo.
Spróbuj tak:
function getTimeNet (day, hour: integer) : boolean;
var
hLib: THandle;
GetTerm: TGetTerm;
aqq: Integer;
aqw: Boolean;
begin
hLib := LoadLibrary ('block');
Result := false;
try
if hLib > 0 then
begin
@GetTerm := GetProcAddress (hLib, 'checkTerm');
if @GetTerm <> nil then
begin
aqw := GetTerm (Pchar(DIR), day, hour);
end;
end;
finally
FreeLibrary (hLib);
end;
Result := aqw;
end;