AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Zugriffsverletzung bei Aufruf von unrar.dll?
Thema durchsuchen
Ansicht
Themen-Optionen

Zugriffsverletzung bei Aufruf von unrar.dll?

Ein Thema von DelphiCreak · begonnen am 28. Sep 2010 · letzter Beitrag vom 29. Sep 2010
Antwort Antwort
DelphiCreak

Registriert seit: 3. Sep 2008
51 Beiträge
 
Delphi 2007 Enterprise
 
#1

Zugriffsverletzung bei Aufruf von unrar.dll?

  Alt 28. Sep 2010, 17:55
Delphi-Version: 5
Guten Abend liebe DP.

Ich Programmiere im Moment einen Auto-Updater für eines meiner Programme. Das Herunterladen funktioniert soweit, er lädt fein das WinRAR-Archiv runter,
so wie er es soll. Nun zum eigentlichem Problem: Ich will dieses Archiv mithilfe der DFUnRar-Komponente entpacken, doch sobald ich die entsprechende Prozedur aufrufe, erhalte ich einen Fehler a la "Zugriffsverletzung in Modul unrar.dll". Wenn ich dasselbe Rar Archiv mithilfe der mitgelieferten Demo-Komponente entpacke läuft es fehlerfrei. Vielleicht findet ihr dabei den Fehler, hier der entsprechende Source:

Delphi-Quellcode:
var
  DFUnRar: TDFUnRar; //Variable, die die Instanz des Objektes enthalten soll
begin
  DFUnRar := TDFUnrar.Create(Self); //Instanz des Objektes erzeugen
  try //ab hier alle Fehler abfangen, damit das Objekt auf jeden Fall freigegeben wird
    with DFUnRar do
    begin
      FileName := ExtractFilePath(ParamStr(0)) + 'TestFolder.rar'; //Dateiname des Archives angeben
      Directory := ExtractFilePath(ParamStr(0)) + 'Temp'; //Ausgabeverzeichnis (darf nicht auf \ enden!)
      ForceDirectories(Directory); //sicherstellen, dass temporäres Ausgabeverzeichnis auch existiert
      FileList.Clear; //Dateiliste der zu entpackenden Dateien leeren
      //Befindet sich die Datei in einem Unterverzeichnis im Archiv, so muss auch dieses mit angegeben werden
      Mode := DFRAR_EXTRACT; //Extract kann Dateien entpacken oder nur Inhaltsverzeichnisse erstellen (DFRAR_LIST)
      OverrideEvent := OR_NEVER; //Ist die Datei im Ausgabeverzeichnis bereits vorhanden, so auf keine Fall überschreiben (Alternative OR_ALWAYS)
      Extract; //Nun aber los ;-)
    end;
  finally
    DFUnRar.Free; //und nicht vergessen: Objekt auf brav wieder freigeben
  end;
Danke im Vorraus

[EDIT] Hat sich erledigt, hatte sich ein Fehler in den Pfad eingeschlichen -.-"
Code ist hier in der DP gesucht worden.[/EDIT]
Dominik C.
Orientierungslos sieht man mehr vom Leben.

Geändert von DelphiCreak (28. Sep 2010 um 18:14 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.336 Beiträge
 
Delphi XE2 Professional
 
#2

AW: Zugriffsverletzung bei Aufruf von unrar.dll?

  Alt 28. Sep 2010, 18:24
Hallo,

hat zwar nichts mit dem Problem zu tun, aber vielleicht solltest du noch prüfen ob wirklich alle Verzeichnisse vorhanden sind/erstellt worden sind.

Delphi-Quellcode:
      If ForceDirectories(Directory) then //sicherstellen, dass temporäres Ausgabeverzeichnis auch existiert
        begin
          FileList.Clear; //Dateiliste der zu entpackenden Dateien leeren
          //Befindet sich die Datei in einem Unterverzeichnis im Archiv, so muss auch dieses mit angegeben werden
          Mode := DFRAR_EXTRACT; //Extract kann Dateien entpacken oder nur Inhaltsverzeichnisse erstellen (DFRAR_LIST)
          OverrideEvent := OR_NEVER; //Ist die Datei im Ausgabeverzeichnis bereits vorhanden, so auf keine Fall überschreiben (Alternative OR_ALWAYS)
          Extract; //Nun aber los ;-)
        end
      else
        begin
          //Irgendwas machen wenn die Verzeichnisse nicht vorhanden sind/erstellt worden sind.
        end;
In diesem Fall gibt ForceDirectories auch true zurück wenn die Verzeichnisse schon vorhanden sind und nicht mehr erstellt werden müssen.
Deswegen kann man auf DirectoryExists verzichten
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
DelphiCreak

Registriert seit: 3. Sep 2008
51 Beiträge
 
Delphi 2007 Enterprise
 
#3

AW: Zugriffsverletzung bei Aufruf von unrar.dll?

  Alt 29. Sep 2010, 17:43
okey, danke hab das problem auch soweit schon gelöst, ist nen bisschen schwierig mit den richtigen Pfaden bei DFUnrar.
Dominik C.
Orientierungslos sieht man mehr vom Leben.
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz