AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Delph7 und 7Zip.dll Fehler beim Dateidatum auslesen

Delph7 und 7Zip.dll Fehler beim Dateidatum auslesen

Ein Thema von Lemmy · begonnen am 8. Aug 2013 · letzter Beitrag vom 9. Aug 2013
Antwort Antwort
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.366 Beiträge
 
Delphi 10.3 Rio
 
#1

Delph7 und 7Zip.dll Fehler beim Dateidatum auslesen

  Alt 8. Aug 2013, 23:45
Delphi-Version: 7
Hallo,

ich "versuche" die 7Zip.dll in Delphi 7 zu verwenden. Dafür verwende ich den Wrapper von Henri Gourvest (https://code.google.com/p/d7zip/). Grundsätzlich funktioniert das Teil, allerdings versuche ich aktuell das Datum der Zip-Items auszulesen. Die DLL stellt dafür folgende Methode bereit:

    function GetProperty(index: Cardinal; propID: PROPID; var value: OleVariant): HRESULT; stdcall;
aber eigentlich kommt da kein OleVariant zurück, sondern ein PROPVARIANT.

Unter XE4 ist das kein Problem:

Delphi-Quellcode:
var LastAcc: PROPVARIANT;
  varOle: OleVariant;
begin
  if Assigned(FInArchiv) then
  begin
    FInArchiv.InArchive.GetProperty(AIndex, kpidLastWriteTime,varOle);
      LastAcc := PROPVARIANT(VarOle);
      result := FileTimeToDateTime(LastAcc.filetime);
...
Allerdings führt der Code unter Delphi 7 bei der Zuweisung an "result" zu einem Fehler:

Ungültiger Variant-Typ

Callstack:
Delphi-Quellcode:
main thread ($e8c):
0046b52d +0b5 Project1.exe Variants TranslateResult
0046b6d0 +004 Project1.exe Variants VarResultCheck
0046ba71 +071 Project1.exe Variants VarClearDeep
0046ba89 +00d Project1.exe Variants @VarClear
0046ba91 +001 Project1.exe Variants @VarClr
004af547 +093 Project1.exe pp7Zip 264 +11 TPP7Zip.GetItemLastAccess

d.h. der Fehler tritt beim Aufräumen auf. Setze ich ein VarClar vor die Result-Zuweisung schepperts dann halt da...

Hat jemand eine Idee wie ich das unter D7 zum Laufen bringe?

GRüße
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.366 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Delph7 und 7Zip.dll Fehler beim Dateidatum auslesen

  Alt 9. Aug 2013, 11:58
Tach,

habe das jetzt in Delphi 7 so hin bekommen:

Delphi-Quellcode:
function TPP7Zip.GetItemLastAccess(AIndex: Cardinal): TDateTime;
var LastAcc: PROPVARIANT;
  varOle: OleVariant;
  dtResult: TDateTime;
begin
  if Assigned(FInArchiv) then
  begin
    FInArchiv.InArchive.GetProperty(AIndex, kpidLastWriteTime,varOle);
      LastAcc := PROPVARIANT(VarOle);
      {$IFDEF VER150}
      TVarData(VarOle).VType := varEmpty;
      {$ENDIF}
      result := FileTimeToDateTime(LastAcc.filetime);
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 12:40 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