API zum Erstellen/Dekomprimieren von ZIP-Dateien, ANSI-C-kompatibel und in Windows-Anwendungen verwendet

Dies ist eine erste Frage auf dieser StackExchange-Site. Bitte teilen Sie mir mit, ob meine Frage nicht zum Thema gehört und wenn ja, welche der Sites besser geeignet wäre.

Ich suche nach einer API, die mit ANSI C auf einem Windows 7-Betriebssystem verwendet werden kann. Ich werde es verwenden, um Dateien zu dekomprimieren, die mit WinZip, DynaZip, 7zip erstellt wurden.

(Ich habe beobachtet, dass jeder von diesen Komprimierungsalgorithmen zu berücksichtigen scheint, die voneinander erstellt wurden, dh 7zip öffnet/erstellt Dateien, die von WinZip geöffnet/erstellt werden können, die wiederum von DynaZip geöffnet/erstellt werden können.)

Bisher habe ich versucht, die Angebote von 7zip und miniz mit einem ANSI-C-Compiler in der LabWindows/CVI-Umgebung (C99-Implementierung) zu kompilieren, bin aber auf fehlende Header-Dateien für beide Angebote gestoßen. Ich habe mir auch die Windows-APIs in MSDN angesehen, aber dort nichts gefunden. Überrascht darüber und frage mich, ob ich einfach nicht in den richtigen Bereichen gesucht habe.

Ich vermute, dass eines der Angebote von 7zip oder miniz perfekt wäre, abgesehen von der unvollständigen Dateiverteilung. Erkenntnisse von anderen, die eine dieser APIs (in einer Windows/C99-Umgebung) erfolgreich erstellt haben, wären hilfreich. Oder ob es einen ganz anderen Ansatz gibt, also eine andere API. Jede Hilfe ist willkommen.

Warum muss es ANSI C sein?
@CristianCiupitu - Mein Kunde ist auf ANSI C standardisiert, und die Anwendung, mit der ich diese API verwenden werde, wird Ansi C sein. Wenn die API in C++ oder C# geschrieben ist, ist das kein Problem, es muss nur eine Möglichkeit geben für mich damit zu verlinken, dh mit .dll, .lib und .h ausgeliefert.

Antworten (2)

Sie können das LZMA SDK verwenden .

  • plattformübergreifend
  • ANSI-C-kompatibel
  • Public-Domain-Lizenz

Sie müssen Ihrem Compiler mitteilen, wo er nach Headern suchen soll, oder die Header in Standardverzeichnisse kopieren (siehe this ).

LZMA erfordert laut seinem Autor die Verwendung von c++ zum Dekomprimieren von .zip-Dateien. Die ANSI-C-Kompatibilität scheint mit der Verwendung nur für die LZMA-Komprimierung zu enden.

Vielleicht ist libarchive die Antwort, aber ich bin mir nicht sicher, ob es ANSI C ist. Obwohl es portabel ist und auf den meisten POSIX-ähnlichen Systemen (einschließlich FreeBSD, Linux, Solaris usw.) funktioniert und Windows unterstützt, einschließlich Cygwin, MinGW und Visual Studio.

Ich werde es mir ansehen. Vielen Dank. Sind Sie sich bewusst, ob es Links zu Beispielen gibt, die diese Bibliothek verwenden? Unter dem Link, den du mir gegeben hast, habe ich keinen gesehen.