如果您的程序/项目完全免费,您可以使用此 dll。如果您通过捐赠或广告获得任何收入,请支持我。
为了使我的叠加层充分工作,您需要 7z.dll,因此如果您还没有此文件,您可以从那里下载它:https://www.7-zip.org/
7zOverlay.dll 文件的参数可以在 7-ZIP 帮助文件中找到,7zOverlay.dll 使用与 7z.exe 文件相同的参数。我希望搬家/改变会很容易。
如果你没有向7zOverlay.dll添加任何参数,它会返回输出缓冲区中参数的帮助,并且返回-1(不带参数)。
默认情况下,它从 7zOverlay.dll 位置加载 7z.dll 文件,无论您是从 %tmp% 位置还是从 .exe 位置调用 7zOverlay.dll 都没有关系。但是,您可以通过函数Set7zDllPathFileA或Set7zDllPathFileW更改 7z.dll 文件位置(示例如下)。仅在使用CommandFor7zipA或CommandFor7zipW任何函数之前,您才能更改 7z.dll 文件位置。加载 7z.dll 文件后,更改 7z.dll 文件位置的功能不起作用。
我使用 7z.dll 版本测试了 7zOverlay.dll:15.05、16.04、19.00、20.00 Alpha 和 20.01 alpha。效果很好。
该 dll 包含四个函数,两个用于ANSI (Set7zDllPathFileA、CommandFor7zipA)字符,两个用于UNICODE (Set7zDllPathFileW、CommandFor7zipW)字符。
两个基本的使用示例,分别用于字符编码:
美国国家标准协会:
C++: BOOL Set7zDllPathFileA(const char * FullPathToThe7zDLL);
Delphi: Set7zDllPathFileA(const FullPathToThe7zDLL: PAnsiChar): BOOL;标准调用;
---
C++: int CommandFor7zipA(const char * params, char * &OutputBuffer, char * &ErrorsBuffer);
Delphi: CommandFor7zipA(const params: PAnsiChar; var OutputBuffer, ErrorsBuffer: PAnsiChar): 整数;
统一码:
C++: BOOL Set7zDllPathFileW(const wchar_t * FullPathToThe7zDLL);
Delphi: Set7zDllPathFileW(const FullPathToThe7zDLL: PWideChar): BOOL;标准调用;
---
C++: int CommandFor7zipW(const wchar_t * params, wchar_t * &OutputBuffer, wchar_t * &ErrorsBuffer);
Delphi: CommandFor7zipW(const params: PWideChar; var OutputBuffer, ErrorsBuffer: PWideChar): Integer;
我还准备了其他编程语言的使用示例,可以在上面下载。
任何示例都不包含 7zOverlay.dll,因此您需要单独下载它并将其放置在提取的示例位置中。
在这里,我仅向免费程序分享此 dll 的 X86(32 位)版本,它仅适用于 7z.dll 的 X86(32 位)版本。该 dll 的 X64(64 位)版本也可用,我们可以在我的 patreon 上讨论它的价格,或者在私人消息中(如果有的话)。
构建信息。
此 7zOverlay.dll 是使用 VisualStudio2015CE 从原始 7-ZIP 源构建的,并进行了一些修改以将其用作 dll,但不用作命令行程序。因此,该 dll 使用与 7-ZIP 命令行程序 (7z.exe) 相同的参数 - 第一个参数(输入),并将输出消息返回到输出缓冲区 - 第二个参数(输出)和所有警告/errors 它在错误缓冲区中返回的消息 - 第三个参数(输出)。
项目故事很短,不感兴趣的可以跳过。
这个项目很久以前就开始了。一开始,我在旧的 Delphi 中使用 JCL for 7-ZIP 创建了这个 dll,速度相当快,但 JCL 并不支持我想要的所有档案。因此,我开始修改原始 7-ZIP 源代码以从中创建覆盖的 dll。我不想像其他一些项目一样创建这个 dll,它使用当前版本的 7-ZIP 构建这些 dll。是的,来自其他项目的这些 dll 是单一的,不需要原始的 7z.dll 即可工作,但您需要等待新版本。通过我的覆盖 dll,您可以使用任何版本的 7-ZIP。