DLL - Dynamic Link Library (ไลบรารีลิงก์แบบไดนามิก)
หากแอสเซมบลีถูกคอมไพล์เป็น Class Library และให้ประเภท (types) เพื่อให้แอสเซมบลีอื่นๆ ใช้งาน จะมีนามสกุลไฟล์เป็น .dll (Dynamic Link Library)
- DLL ไม่สามารถรันได้เอง (Standalone)
- DLL ไม่สามารถเรียกใช้งานโดยตรงได้ เนื่องจากออกแบบมาเพื่อโหลดและรันโดยโปรแกรมอื่น
- DLL จะใช้ Process และ Memory Space เดียวกับแอปพลิเคชันที่เรียกใช้
- สามารถนำกลับมาใช้ซ้ำในแอปพลิเคชันอื่นได้ ตราบใดที่ผู้เขียนโค้ดรู้ชื่อและพารามิเตอร์ของฟังก์ชันและกระบวนการในไฟล์ DLL
EXE - Executable File Format (ไฟล์รันได้)
หากแอสเซมบลีถูกคอมไพล์เป็น Application จะมีนามสกุลไฟล์เป็น .exe
- EXE สามารถรันได้เอง (Standalone)
- EXE สร้าง Process และ Memory Space แยกต่างหาก
สรุปความแตกต่างหลัก
| คุณสมบัติ | DLL | EXE |
|---|---|---|
| การรัน | ไม่สามารถรันเองได้ | รันเองได้ |
| Process & Memory | แชร์กับ Caller | สร้างใหม่แยกต่างหาก |
| วัตถุประสงค์ | Library สำหรับ reuse code | Application หลัก |