DLL چیست؟
#1
Note 
[تصویر:  attachment.php?attachmentid=199&d=1343108961]

در كامپيوتر، DLL که مخفف dynamic link library است مجموعه اي از برنامه هاي کوچک است، که هر کدام مي تواند توسط يک برنامه بزرگتر که در کامپيوتر در حال اجرا است احضار شود. برنامه کوچکي که به برنامه بزرگتر اجازه برقراري ارتباط با يک وسيله ويژه مثل چاپگر (پرينتر) و يا اسکنر را ميدهد همواره به عنوان يک برنامه DLL بسته بندي مي شود( معمولا به " فايل DLL " اشاره مي شود). مزيت فايل هاي DLL اين است که، از آنجا که آنها در حافظه كامپيوتر (RAM) با هم به همراه برنامه اصلي بارگذاري نــمي شوند، فضا در RAM صرفه جويي مي شود. وقتي که يک فايل DLL نياز است، بعد بارگذاري و اجرا مي شود. به طور مثال تا مادامي که يک کاربر microsoft word ( يک برنامه پردازش کلمه که توسط شرکت microsoft به وجود امده است ) دارد يک سند (Document) را ويرايش مي کند، فايل DLL چاپگر نياز نيست تا در RAM بارگذاري شود. اگر کاربر تصميم به پرينت گرفتن آن سند بگيرد، سپس برنامه کاربردي Word باعث مي شود تا فايل DLL چاپگر بارگذاري و اجرا شود.

اين ويژگي چندين مزيت دارد : اول اينكه چون فايل هاي DLL فقط در هنگام نياز بارگذاري مي شوند ، وقتي مورد استفاده نباشند ، حافظه اي رو مورد مصرف قرار نمي دهند . دوم اينكه چون فايل DLL فايلي جداگانه هست ، برنامه نويسان مي توانند بدون تاثير روي برنامه فراخوان يا فايلهاي DLL ديگر ، اصلاحات يا تغييراتي را در يك واحد ( فايل DLL ) انجام دهند .

به يک فايل DLL اغلب پسوند نام فايل ".dll" داده مي شود. فايل هاي DLL به صورت پويايي به برنامه اي که از آنها در طول زمان اجراي برنامه استفاده مي کند متصل هستند تا اينکه با برنامه اصلي گردآوري شوند. مجموعه چنين فايل هاي (يا DLL ) تقريبا قابل مقايسه با کتابخانه روال هايي هستند (library routines) که با زبان هاي برنامه ريزي از قبيل ++C و C فراهم مي شوند.

ويژگي خاصي در مايكروسافت ويندوز و سيستم عامل os/2 مي باشد واين امكان را فراهم مي سازد تا روالهاي اجرايي به عنوان فايل هاي جداگانه اي با پسوند dll ذخيره شوند. و فقط هنگام نياز برنامه اي فراخواننده آنها، بارگذاري شوند. اين ويژگي چندين مزيت دارد: اول اينكه چون فايل هاي dll فقط در هنگام نياز بارگذاري مي شوند، وقتي مورد استفاده نباشند، حافظه اي رو مورد مصرف قرار نمي دهند. دوم اينكه چون فايل dll فايلي جداگانه هست، برنامه نويسان مي توانند بدون تاثير روي برنامه فراخوان يا فايلهاي dll ديگر، اصلاحات يا تغييراتي را در يک واحد (فايل dll) انجام دهند.



قبلا به این موضوع اشاره شد که فایهای DLL آن دست از برنامه هایی هستند که یکبار نوشته می شوند و در پروژه های بعدی بکرات می تواند از آنها استفاده برد. چیزی که هسته ویندور را تشکیل می دهد اینگونه فایلها هستند. علاوه بر آن تکنیک هایی وجود دارد که شما را قادر می سازد تا برنامه هایی بنویسید که قادرند خود را بروز برسانند و یا خود ترمیم باشند. بهتر از آن اینکه برنامه ای بنویسید که با الحاق اینگونه فایلها بدان قدرت و امکانات جدید بدان افزود. همانند نرم افزارهای رایج از جمله Winamp.

کتابخانه های پویای قابل اتصال (DLL) چه هستند؟یک DLL مجموعه ای از توابع و پروسه هایی است که می تواند از برنامه یا DLLهای نظیر خود فراخوانده شود.

استفاده از اینگونه کتابخانه های دو مزیت اصلی دارد:

1- امکان به اشتراک گذاری از کد را فراهم می سازند. یک DLL می تواند مورد استفاده خیلی از برنامه های قرار گیرد. بعنوان مثال کتابخانه Win32 API نمونه ای از این سری فایلها است. بعلاوه از زمانی که پروسه های گوناگون قادر به فراخوانی یک DLL واحد هستند امکان به اشتراک گذاری کد ها و روتین ها فراهم آمده است. یک فایل DLL تنها یکبار به درون حافظه لود می شود و بارها توسط پروسه های گوناگونی مورد استفاده قرار می گیرد و این یعنی مدیریت حافظه بهتر.

2- مزیت دیگر امکان نوشتن برنامه ها بصورت اجزای منفصل است که این اجزا خود قابل تعویض با نگارش های جدیدتر جهت توسعه نرم افزار خواهند بود بدون اینکه خطی از کد برنامه اصلی دگرگون شود.
با این توصیف فایلهای کتابخانه ای درونی که در پروژه های مورد استفاده قرار می گیرد در صورت تغییر نیاز هست تا پروژه اصلی دوباره کمپایل شود تا بتوان با آن ارتباط بر قرار کرد. اما در DLL ها چون بصورت پویا و قابل انعطاف نوشته شده اند این اتصال در بیرون از بدنه اصلی و درست در زمان فراخوانی آن قبیل از متدها و توابع شکل می گیرد و این خود تفاوت آشکار از مزیت این گونه از فایلها می باشد.همچنین یک فایل DLL می تواند حاوی توابعی باشد که فقط مورد استفاده خود هست و از درون به آن دسترسی نخواهیم داشت و آندسته از تابعی را که نیاز هست معرفی می کنیم تا از بیرون بدان دسترسی داشته باشیم. در این مرحله نیاز به معرفی در فایلهای Def هست که در پروژه های C و C++ مورد استفاده قرار می گیرد.



و اما ساختار DLL فایلهای DLL حاوی یک مدخل شروع انتخابی (optional entry point) و پایانی هستند که در زمانی که توسط برنامه های دیگر به درون حافظه لود یا آنلود می شوند قابل اجرا است. ویندوز این پروسه را در زمانی که یک برنامه DLLها را بدرون حافظه لود یا آنلود می کند اجرا می کند.

این دو نوع پروسه به DLL این امکان را می دهد که یک سری از مقدمات را پیش از استفاده مهیا کند یا بعد از استفاده پاکسازی نماید

کاربرد dll در برنامه نویسی :

با استفاده از این فایل های dll میشه برنامه هارو به صورت کاملا Modular و با مولفه های قابل مدیریت نوشت

دلیلشم اینه که Module ها به صورت جدا از هم کار می کنند و هر Moduleی که نصب شده باشه در زمان اجرا توی حافظه Load میشه و از یه Module فقط زمانی استفاده میشه که به اون Module احتیاج باشه .

مزیت دیگه استفاده از Module اینه کهUpdate برنامه خیلی راحت تر انجام میشه و فقط Module مورد نظر Update میشه بدون اثر گذاشتن روی سایر Module ها .



فایل های زیر در سیستم عامل Windows به عنوان DLL مورد استفاده قرار می گیرند .

ActiveX Controls (.ocx) files

مثله کنترل Calendar در ویندوز .

Control Panel (.cpl) files

مثله همه Item های موجود در کنترل پنل Windows

Device Driver Controls (.drv) files

مثله یک فایل Driver برای یک Printe

swe-fathi.blogfa.com

پاسخ
ایجاد موضوع جدید   پاسخ به موضوع  

موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Note اورکلاک چیست؟ چرا اورکلاک کنیم؟ | نحوه اورکلاک کردن THE KNIGHT 0 460 14-03-2014 ساعت 23:11
آخرین ارسال: THE KNIGHT
Note Svchost.exe چیست؟ Stack OverFlow 1 739 13-10-2012 ساعت 19:08
آخرین ارسال: Evil shadow
Note Unicode چیست؟ PHP.sec 0 442 08-09-2012 ساعت 18:28
آخرین ارسال: PHP.sec
Note هرتز چیست؟ THE KNIGHT 0 897 24-07-2012 ساعت 17:21
آخرین ارسال: THE KNIGHT
Note DirectAdmin چیست؟ SOFTAFZAR 0 469 22-07-2012 ساعت 16:07
آخرین ارسال: SOFTAFZAR
Note تعریف و تفاوت بین جیل برک (Jailbreak) و آنلاک (Unlock) چیست؟ SOFTAFZAR 0 470 22-07-2012 ساعت 15:29
آخرین ارسال: SOFTAFZAR
Note Router چیست؟ SOFTAFZAR 2 457 22-07-2012 ساعت 15:24
آخرین ارسال: SOFTAFZAR
Note دامنه (Domain) چیست؟ SOFTAFZAR 0 389 22-07-2012 ساعت 15:16
آخرین ارسال: SOFTAFZAR
Note Spyware چیست؟ SOFTAFZAR 0 420 22-07-2012 ساعت 15:08
آخرین ارسال: SOFTAFZAR
Note حافظه ssd چیست؟ THE KNIGHT 0 430 15-07-2012 ساعت 09:02
آخرین ارسال: THE KNIGHT

کاربرانِ درحال بازدید از این موضوع:   1 مهمان