Sie können diese DLL verwenden, wenn Ihr Programm/Projekt völlig kostenlos ist. Wenn Sie auch durch Spenden oder Anzeigen Einnahmen erzielen, unterstützen Sie mich bitte.
Damit mein Overlay vollständig funktioniert, benötigen Sie die 7z.dll. Wenn Sie diese Datei also noch nicht haben, können Sie sie von dort herunterladen: https://www.7-zip.org/
Die Parameter für die Datei 7zOverlay.dll finden Sie in der 7-ZIP-Hilfedatei. Die Datei 7zOverlay.dll verwendet dieselben Parameter wie die Datei 7z.exe. Ich hoffe, dass der Umzug/die Änderung einfach sein wird.
Wenn Sie der 7zOverlay.dll keine Parameter hinzufügen, werden die Parameter im Ausgabepuffer unterstützt und -1 (ohne Parameter) zurückgegeben.
Standardmäßig lädt es die Datei 7z.dll vom Speicherort 7zOverlay.dll. Es spielt keine Rolle, ob Sie 7zOverlay.dll vom Speicherort %tmp% oder von Ihrem .exe-Speicherort aus aufrufen. Sie können den Speicherort der Datei 7z.dll jedoch mit den Funktionen Set7zDllPathFileA oder Set7zDllPathFileW ändern (Beispiel unten). Nur vor einer der Funktionen CommandFor7zipA oder CommandFor7zipW können Sie den Speicherort der Datei 7z.dll ändern. Nachdem die Datei 7z.dll geladen wurde, funktionieren die Funktionen zum Ändern des Speicherorts der Datei 7z.dll nicht.
Ich habe die 7zOverlay.dll mit den 7z.dll-Versionen 15.05, 16.04, 19.00, 20.00 Alpha und 20.01 Alpha getestet. Es funktioniert gut.
Diese DLL enthält vier Funktionen, zwei für ANSI- Zeichen (Set7zDllPathFileA, CommandFor7zipA) und zwei für UNICODE- Zeichen (Set7zDllPathFileW, CommandFor7zipW).
Zwei grundlegende Anwendungsbeispiele, getrennt für die Zeichenkodierung:
ANSI :
C++: BOOL Set7zDllPathFileA(const char * FullPathToThe7zDLL);
Delphi: Set7zDllPathFileA(const FullPathToThe7zDLL: PAnsiChar): BOOL; stdcall;
---
C++: int CommandFor7zipA(const char * params, char * &OutputBuffer, char * &ErrorsBuffer);
Delphi: CommandFor7zipA(const params: PAnsiChar; var OutputBuffer, ErrorsBuffer: PAnsiChar): Integer;
UNICODE :
C++: BOOL Set7zDllPathFileW(const wchar_t * FullPathToThe7zDLL);
Delphi: Set7zDllPathFileW(const FullPathToThe7zDLL: PWideChar): BOOL; stdcall;
---
C++: int CommandFor7zipW(const wchar_t * params, wchar_t * &OutputBuffer, wchar_t * &ErrorsBuffer);
Delphi: CommandFor7zipW(const params: PWideChar; var OutputBuffer, ErrorsBuffer: PWideChar): Integer;
Außerdem habe ich weitere Anwendungsbeispiele für andere Programmiersprachen vorbereitet, die oben zum Download zur Verfügung stehen.
In den Beispielen ist die Datei „7zOverlay.dll“ nicht enthalten. Sie müssen sie daher separat herunterladen und am Speicherort der extrahierten Beispiele ablegen.
Hier teile ich nur die X86-Version (32-Bit) dieser DLL für kostenlose Programme, die nur mit der X86-Version (32-Bit) der 7z.dll funktioniert. Der X64-Build (64-Bit) dieser DLL ist ebenfalls verfügbar und wir können über den Preis auf meinem Patreon oder hier in privaten Nachrichten (falls verfügbar) sprechen.
Build-Informationen.
Diese 7zOverlay.dll wurde aus der ursprünglichen 7-ZIP-Quelle mit VisualStudio2015CE mit einigen Modifikationen erstellt, um sie als DLL, aber nicht als Befehlszeilenprogramm zu verwenden. Diese DLL verwendet also dieselben Parameter wie für das 7-ZIP-Befehlszeilenprogramm (7z.exe) – den ersten Parameter (Eingabe) und gibt die Ausgabemeldungen an den Ausgabepuffer zurück – den zweiten Parameter (Ausgabe) und alle Warnungen /errors-Meldungen werden im Fehlerpuffer zurückgegeben – dritter Parameter (Ausgabe).
Kurze Projektgeschichte, Sie können sie überspringen, wenn Sie kein Interesse haben.
Dieses Projekt wurde vor langer Zeit gestartet. Zu Beginn habe ich diese DLL im alten Delphi mit der JCL für 7-ZIP erstellt, es ging recht schnell, aber die JCL unterstützt nicht alle Archive, wie ich wollte. Also begann ich, die ursprüngliche 7-ZIP-Quelle zu ändern, um daraus die überlagerte DLL zu erstellen. Ich wollte diese DLL nicht wie in einigen anderen Projekten erstellen, die diese DLL(s) mit der aktuellen Version von 7-ZIP erstellen. Ja, diese DLL(s) aus anderen Projekten sind einzeln und benötigen nicht die ursprüngliche 7z.dll, um zu funktionieren, aber Sie müssen auf eine neue Version warten. Mit meiner überlagerten DLL können Sie jede Version von 7-ZIP verwenden.