คุณสามารถใช้ dll นี้หากโปรแกรม/โครงการของคุณไม่มีค่าใช้จ่ายใดๆ ทั้งสิ้น หากคุณมีรายได้จากการบริจาคหรือโฆษณา โปรดสนับสนุนฉันด้วย
เพื่อให้โอเวอร์เลย์ของฉันทำงานได้เต็มที่ คุณต้องมี 7z.dll ดังนั้นหากคุณยังไม่มีไฟล์นี้ คุณสามารถดาวน์โหลดได้จากที่นั่น: https://www.7-zip.org/
พารามิเตอร์สำหรับไฟล์ 7zOverlay.dll สามารถพบได้ในไฟล์วิธีใช้ 7-ZIP โดย 7zOverlay.dll ใช้พารามิเตอร์เดียวกันกับไฟล์ 7z.exe ฉันหวังว่าการย้าย/เปลี่ยนแปลงจะเป็นเรื่องง่าย
หากคุณไม่เพิ่มพารามิเตอร์ใดๆ ให้กับ 7zOverlay.dll จะส่งคืนความช่วยเหลือของพารามิเตอร์ในบัฟเฟอร์เอาต์พุต และส่งกลับ -1 (โดยไม่มีพารามิเตอร์)
ตามค่าเริ่มต้น มันจะโหลดไฟล์ 7z.dll จากตำแหน่ง 7zOverlay.dll ไม่สำคัญว่าคุณจะเรียก 7zOverlay.dll จากตำแหน่ง %tmp% หรือจากตำแหน่ง .exe ของคุณ แต่คุณสามารถเปลี่ยนตำแหน่งไฟล์ 7z.dll ได้โดยใช้ฟังก์ชัน Set7zDllPathFileA หรือ Set7zDllPathFileW (ตัวอย่างด้านล่าง) ก่อนฟังก์ชันใด ๆ CommandFor7zipA หรือ CommandFor7zipW คุณสามารถเปลี่ยนตำแหน่งไฟล์ 7z.dll ได้ หลังจากโหลดไฟล์ 7z.dll แล้ว ฟังก์ชันในการเปลี่ยนตำแหน่งไฟล์ 7z.dll จะไม่ทำงาน
ฉันทดสอบ 7zOverlay.dll ด้วยเวอร์ชัน 7z.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; stdcall;
-
C++: int CommandFor7zipA(const char * params, char * &OutputBuffer, char * &ErrorsBuffer);
Delphi: CommandFor7zipA (พารามิเตอร์ const: PAnsiChar; var OutputBuffer, ErrorsBuffer: PAnsiChar): จำนวนเต็ม;
ยูนิโค้ด :
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: PWideChar; var OutputBuffer, ErrorsBuffer: PWideChar): จำนวนเต็ม;
ฉันยังได้เตรียมตัวอย่างการใช้งานอื่นๆ สำหรับภาษาโปรแกรมอื่นๆ ที่มีให้ดาวน์โหลดด้านบนด้วย
ตัวอย่างใดๆ ไม่รวม 7zOverlay.dll ดังนั้นคุณต้องดาวน์โหลดแยกต่างหากและวางไว้ในตำแหน่งตัวอย่างที่แยกออกมา
ที่นี่ฉันแชร์เฉพาะเวอร์ชัน X86 (32 บิต) ของ dll นี้สำหรับโปรแกรมฟรี ซึ่งใช้ได้กับรุ่น X86 (32 บิต) ของ 7z.dll เท่านั้น X64 (64 บิต) ของ dll นี้มีวางจำหน่ายแล้ว และเราสามารถพูดคุยเกี่ยวกับราคาของมันได้จาก Patreon ของฉัน หรือที่นี่ในข้อความส่วนตัว (ถ้ามี)
ข้อมูลการสร้าง
7zOverlay.dll นี้ถูกสร้างขึ้นจากแหล่ง 7-ZIP ดั้งเดิมโดยใช้ VisualStudio2015CE พร้อมการแก้ไขบางอย่างเพื่อใช้เป็น dll แต่ไม่ใช่เป็นโปรแกรมบรรทัดคำสั่ง ดังนั้น dll นี้ใช้พารามิเตอร์เดียวกันกับที่คุณใช้สำหรับโปรแกรมบรรทัดคำสั่ง 7-ZIP (7z.exe) - พารามิเตอร์แรก (อินพุต) และส่งคืนข้อความเอาต์พุตไปยังบัฟเฟอร์เอาต์พุต - พารามิเตอร์ตัวที่สอง (เอาต์พุต) และคำเตือนทั้งหมด /errors ข้อความที่ส่งคืนในบัฟเฟอร์ข้อผิดพลาด - พารามิเตอร์ที่สาม (เอาต์พุต)
เรื่องสั้นของโปรเจ็กต์สามารถข้ามได้หากไม่สนใจ
โครงการนี้เริ่มต้นมานานแล้ว ในตอนแรกฉันสร้าง dll นี้ใน Delphi เก่าโดยใช้ JCL สำหรับ 7-ZIP มันค่อนข้างเร็ว แต่ JCL ไม่รองรับไฟล์เก็บถาวรทั้งหมดตามที่ฉันต้องการ ดังนั้นฉันจึงเริ่มแก้ไขซอร์ส 7-ZIP ดั้งเดิมเพื่อสร้าง dll ที่ซ้อนทับจากนั้น ฉันไม่ต้องการสร้าง dll นี้เหมือนกับในโครงการอื่น ๆ ซึ่งสร้าง dll เหล่านี้ด้วย 7-ZIP เวอร์ชันปัจจุบัน ใช่ dll เหล่านี้จากโปรเจ็กต์อื่นเป็นไฟล์เดียวและไม่ต้องใช้ 7z.dll ดั้งเดิมในการทำงาน แต่คุณต้องรอเวอร์ชันใหม่ ด้วย dll ที่ซ้อนทับของฉัน คุณสามารถใช้ 7-ZIP เวอร์ชันใดก็ได้