AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

GhostScript: Zugriffsverletzung

Ein Thema von haentschman · begonnen am 6. Jul 2020 · letzter Beitrag vom 6. Jul 2020
 
Delphi.Narium

Registriert seit: 27. Nov 2017
2.562 Beiträge
 
Delphi 7 Professional
 
#7

AW: GhostScript: Zugriffsverletzung

  Alt 6. Jul 2020, 13:11
mmmmmhhhh.... weiß nicht so recht:
Delphi-Quellcode:
if TFile.Exists(CurrentDLLPath) then
begin
  FDLLHandle := LoadLibrary(PChar(CurrentDLLPath));
end;

if FDLLHandle > 0 then
Wat iss denne, wenn FDLLHandle vor dem if TFile.Exists(CurrentDLLPath) then 'nen Wert > 0 hat?

Von mir aus sowas:
Delphi-Quellcode:
if not TFile.Exists(CurrentDLLPath) then begin
  // Fehlerloggen
  Result := false;
  exit;
end;
aber keinerfalls bei fehlender DLL noch irgendwas in der Routine machen außer Result := false;
Eventuell noch hinter das erste Begin am Anfang der Routine ein Result := False; als grundsätzlich erstmal festgelegter Rückgabewert der Funktion, der nur bei Erfolg auf true geändert wird.
Delphi-Quellcode:
function TGhostscript.LoadDLL(PathDLL: string): Boolean;
var
  CurrentDLLPath: string;
begin
  Result := false;
  if PathDLL = 'then
  begin
    CurrentDLLPath := IncludeTrailingPathDelimiter(ExtractFilePath(ParamStr(0))) + conDLLName;
  end
  else
  begin
    CurrentDLLPath := PathDLL;
  end;

  if TFile.Exists(CurrentDLLPath) then
  begin
    FDLLHandle := LoadLibrary(PChar(CurrentDLLPath));
    if FDLLHandle > 0 then
    begin
      FGsInit := GetProcAddress(FDLLHandle, 'gsapi_new_instance');
      Result := (FGsInit(@FGsInstance, nil) = 0);
      if Result then
      begin
        FGsApiInitWithArgs := GetProcAddress(FDLLHandle, 'gsapi_init_with_args');
        if not Assigned(FGsApiInitWithArgs) then
        begin
          FOnError(Self, 'GsApiInitWithArgs konnte nicht ermittelt werden.');
          FLog.Log('GsApiInitWithArgs konnte nicht ermittelt werden.');
          Result := False;
        end;
        FGsApiExit := GetProcAddress(FDLLHandle, 'gsapi_exit');
        if not Assigned(FGsApiExit) then
        begin
          FOnError(Self, 'GsApiExit konnte nicht ermittelt werden.');
          FLog.Log('GsApiExit konnte nicht ermittelt werden.');
          Result := False;
        end;
        FGsApiDeleteInstance := GetProcAddress(FDLLHandle, 'gsapi_delete_instance');
        if not Assigned(FGsApiDeleteInstance) then
        begin
          FOnError(Self, 'GsApiDeleteInstance konnte nicht ermittelt werden.');
          FLog.Log('GsApiDeleteInstance konnte nicht ermittelt werden.');
          Result := False;
        end;
      end
      else
      begin
        FOnError(Self, 'Die Ghostscript Instanz konnte nicht erzeugt werden.');
        FLog.Log('Die Ghostscript Instanz konnte nicht erzeugt werden.');
        Result := False;
      end;
    end
    else
    begin
      FOnError(Self, Format('Die Ghostscript DLL %s wurde nicht geladen.', [QuotedStr(CurrentDLLPath)]));
      FLog.Log('Die Ghostscript DLL wurde nicht geladen.');
      Result := False;
    end;
  end
  else
  begin
    FOnError(Self, Format('Die Ghostscript DLL %s wurde nicht gefunden.', [QuotedStr(CurrentDLLPath)]));
    FLog.Log('Die Ghostscript DLL wurde nicht gefunden.');
    Result := False;
  end;
end;
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz