ความแตกต่างระหว่าง DLL และ LIB

Anonim

DLL vs LIB

ไลบรารีคือชุดของทรัพยากรที่สามารถใช้ในการพัฒนาแอ็พพลิเคชันได้ ห้องสมุดมักประกอบด้วย subroutines, functions, classes, values ​​และ types ระหว่างกระบวนการเชื่อมโยง (โดยปกติจะทำโดย linker) ไลบรารีและ executables จะอ้างอิงถึงกันและกัน ไฟล์ไลบรารีถูกแบ่งออกเป็นไลบรารีแบบสแตติกและแบบไดนามิกขึ้นอยู่กับเวลาที่มีการโหลดโปรแกรมย่อยลงในแอ็พพลิเคชันเป้าหมาย ดังนั้นไลบรารีไฟล์ LIB เป็นไลบรารีแบบสแตติกและไฟล์ DLL จึงเป็นไลบรารีแบบไดนามิก

DLL คืออะไร?

ไลบรารีการเชื่อมโยงแบบไดนามิก (เรียกอีกอย่างว่า DLL) เป็นไลบรารีที่ใช้ร่วมกันซึ่งพัฒนาขึ้นโดย Microsoft ใช้. dll,. ocx หรือ DRV และมีการใช้งานในระบบปฏิบัติการ Microsoft Windows และ OS / 2 … dll ถูกใช้โดยไฟล์ DLL ปกติ และ. ส่วนขยาย OCX ถูกใช้โดยไลบรารีที่มีตัวควบคุม ActiveX และ ส่วนขยาย DRV ใช้กับไฟล์ไดรเวอร์ระบบเดิม รูปแบบไฟล์ DLL เหมือนกับไฟล์ Windows EXE (ไฟล์ปฏิบัติการแบบพกพาบน Windows 32 บิต / 64 บิตและใช้งานได้ใหม่บน Windows แบบ 16 บิต) ดังนั้นการรวมกันของโค้ดข้อมูลและรีซอร์สจะอยู่ในไฟล์ DLL (เช่นเดียวกับไฟล์ EXE) ไฟล์ที่มีรูปแบบไฟล์ DLL เรียกว่า resource DLLs ไลบรารีไอคอน (พร้อมนามสกุล. icl) และไฟล์แบบอักษร (มีนามสกุล. fon และ. fot) เป็นตัวอย่างของทรัพยากร DLL

ส่วนประกอบที่เรียกว่าส่วนทำขึ้น DLL และแต่ละส่วนจะมีแอตทริบิวต์ของตัวเองเช่น read-only / writable และ executable / non executable ส่วนรหัสเป็นปฏิบัติการได้ในขณะที่ส่วนข้อมูลไม่สามารถใช้งานได้ ส่วนรหัสจะใช้ร่วมกันและส่วนข้อมูลเป็นแบบส่วนตัว นั่นหมายความว่ากระบวนการทั้งหมดที่ใช้ DLL จะใช้สำเนาเดียวกันของโค้ดในขณะที่แต่ละโพรเซสจะมีสำเนาข้อมูลของตัวเอง ไลบรารีไดนามิกหลักสำหรับ Windows คือ kernel32 dll ซึ่งประกอบด้วยฟังก์ชันพื้นฐาน (ไฟล์และฟังก์ชันการทำงานที่เกี่ยวกับหน่วยความจำ) บน Windows COM (Component Object Model) คือส่วนขยายของ DLL ไปยัง OOP (Object Oriented Programming) DLL แบบธรรมดาใช้งานง่ายกว่าไฟล์ COM

LIB คืออะไร?

ไฟล์ LIB เป็นไลบรารีแบบสแตติก (static libraries) ไฟล์ LIB ประกอบด้วยชุดย่อยของฟังก์ชันภายนอกและตัวแปรต่างๆ ไฟล์ไลบรารีจะได้รับการแก้ไขตามเวลาในการคอมไพล์ (เมื่อเทียบกับเวลารันไทม์) รหัสถูกคัดลอกไปยังแอ็พพลิเคชันเป้าหมายแล้ว คอมไพเลอร์เกอร์เกอร์หรือตัวประสานจะทำแบบนี้และสร้างไฟล์อ็อบเจ็กต์และไฟล์ปฏิบัติการ กระบวนการนี้เรียกว่ากระบวนการสร้างแบบคงที่

ความแตกต่างระหว่าง DLL และ LIB คืออะไร?

ไลบรารีไลบรารีสามารถเรียกได้ในระหว่างการคอมไพล์ แต่ไลบรารี DLL สามารถเรียกได้เฉพาะในช่วงรันไทม์เท่านั้นไฟล์ LIB มีขนาดใหญ่กว่าไฟล์ DLL อย่างมีนัยสำคัญ ปัญหาที่พบบ่อยเกี่ยวกับไฟล์ DLL คือปัญหาเกี่ยวกับเวอร์ชัน เกิดขึ้นเมื่อรหัสของ DLL มีการเปลี่ยนแปลงและโปรแกรมประยุกต์ใช้ DLL รุ่นที่ไม่ถูกต้อง นี่ไม่ใช่ปัญหาที่เกี่ยวข้องกับไฟล์ LIB ในแง่ของการนำมาใช้ใหม่เมื่อเขียนระบบเวอร์ชันใหม่หรือแอพพลิเคชันใหม่ที่สมบูรณ์ DLLs ดีกว่า LIBs เสมอ