DLL กับ LIB
ห้องสมุดคือชุดของทรัพยากรที่ใช้พัฒนาแอปพลิเคชันได้ ไลบรารีมักจะประกอบด้วยรูทีนย่อย ฟังก์ชัน คลาส ค่าและประเภท ระหว่างกระบวนการเชื่อมโยง (โดยปกติทำโดยตัวเชื่อมโยง) ไลบรารีและไฟล์เรียกทำงานจะอ้างอิงถึงกัน ไฟล์ไลบรารีถูกแบ่งออกเป็นไลบรารีสแตติกและไดนามิก ขึ้นอยู่กับเวลาที่รูทีนย่อยถูกโหลดไปยังแอ็พพลิเคชันเป้าหมาย ดังนั้น ไฟล์ LIB จึงเป็นไลบรารีที่ลิงก์แบบสแตติก และไฟล์ DLL จึงเป็นไลบรารีที่ลิงก์แบบไดนามิก
DLL คืออะไร
Dynamic Link Library (หรือที่เรียกกันทั่วไปว่า 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 จะเรียกว่า DLL ของทรัพยากร ไลบรารีไอคอน (ที่มีนามสกุล.icl) และไฟล์ฟอนต์ (ที่มีนามสกุล.fon และ.fot) เป็นตัวอย่างของ DLL ของทรัพยากร
ส่วนประกอบที่เรียกว่าส่วนประกอบขึ้นเป็น DLL และแต่ละส่วนมีแอตทริบิวต์ของตัวเอง เช่น อ่านอย่างเดียว/เขียนได้ และสั่งการได้/ไม่สามารถสั่งการได้ ส่วนรหัสสามารถเรียกใช้งานได้ ในขณะที่ส่วนข้อมูลไม่สามารถดำเนินการได้ ส่วนรหัสถูกแชร์และส่วนข้อมูลเป็นแบบส่วนตัวนั่นหมายความว่ากระบวนการทั้งหมดที่ใช้ DLL จะใช้สำเนาของรหัสเดียวกัน ในขณะที่แต่ละกระบวนการจะมีสำเนาข้อมูลของตัวเอง ไลบรารีไดนามิกหลักสำหรับ Windows คือ kernel32.dll ซึ่งมีฟังก์ชันพื้นฐาน (ฟังก์ชันที่เกี่ยวข้องกับไฟล์และหน่วยความจำ) บน Windows COM (Component Object Model) เป็นส่วนขยายของ DLL เป็น OOP (Object Oriented Programming) DLL ทั่วไปนั้นใช้งานง่ายกว่าไฟล์ COM
LIB คืออะไร
ไฟล์ LIB เป็นไลบรารีแบบสแตติก (หรือที่เรียกว่าไลบรารีที่ลิงก์แบบสแตติก) ไฟล์ LIB มีชุดของรูทีนย่อย ฟังก์ชันภายนอก และตัวแปร ไฟล์ LIB ได้รับการแก้ไขในเวลาคอมไพล์ (ซึ่งต่างจากรันไทม์) รหัสถูกคัดลอกไปยังแอปพลิเคชันเป้าหมายจริงๆ คอมไพเลอร์ ตัวเชื่อมโยง หรือตัวประสานจะทำการแก้ปัญหานี้และสร้างไฟล์อ็อบเจ็กต์และไฟล์เรียกทำงาน กระบวนการนี้เรียกว่ากระบวนการสร้างแบบคงที่
DLL กับ LIB ต่างกันอย่างไร
LIB ไลบรารีสามารถเรียกได้ระหว่างเวลาคอมไพล์ แต่ไลบรารี DLL สามารถเรียกได้เฉพาะระหว่างรันไทม์เท่านั้นไฟล์ LIB มีขนาดใหญ่กว่าไฟล์ DLL อย่างมาก ปัญหาที่พบบ่อยมากกับไฟล์ DLL คือปัญหาการกำหนดเวอร์ชัน สิ่งนี้จะเกิดขึ้นเมื่อมีการเปลี่ยนรหัสของ DLL และแอปพลิเคชันใช้ DLL รุ่นที่ไม่ถูกต้อง นี่ไม่ใช่ปัญหาที่เกี่ยวข้องกับไฟล์ LIB ในแง่ของความสามารถในการใช้ซ้ำ เมื่อเขียนระบบเวอร์ชันใหม่หรือแอปพลิเคชันใหม่ทั้งหมด DLL ย่อมดีกว่า LIB เสมอ