قربونت Parthia جان.
منبع :
http://forum.p30world.com/showthread.php?t=140405
--------------------------------------------
شاید مطلب زیر مربوط به این تاپیک نباشد یا باشد. بهرحال بسیار مفید است.
============================================
ميخاستم بپرسم يك فايل dll چيه و چيكار ميكنه؟ آيا ميشه dllي رو كه با يك زبان نوشته شده در ساير زبان ها به كار برد؟ اصلاً از كجا بفهميم كه محتويات يك dll چيه و چيكار ميكنه؟ وتفاوت فايل dll با فايل cab چيه؟
نویسنده : _H2_
سلام
dll مخفف dynamic link library به معنای "کتابخانه پیوند پویای دینامیکی"، گرچه جدیداً کمی از نامش فاصله گرفته ولی اصل بنیانش فرقی نکرده، به نوعی dll خیلی شبیه exe است و میتواند هر کاری در رایانه انجام دهد و باید با یک زبان برنامه نویسی ساخته شود و برایش کد نویسی کرد.
برنامه نویسان دستورات و بلوک کدهای پرکاربرد را در dll بسته بندی میکنیم تا بتوانیم در برنامه های مختلف از آن استفاده کنیم و نیاز به copy و paste کدها نداشته باشیم و یا اگر کد ایرادی داشت و اصلاحش کردیم مجبور نشویم به تمام برنامه ها بریم و کد را در آن اصلاح کنیم، فقط dll را اصلاح میکنیم!!
یا مورد دیگر اهمیت آنها در پلاگین های پیچیده و خاص است که با وجودی که برنامه ای تهیه شده و تمام شده اجازه میدهد بخش هایی به برنامه در آینده اضافه شوند! بدون نیاز به پاک کردن یا نصب مجدد برنامه و فقط با کپی dll جدید.
مثلاً تا حالا به پنجره Open و Save اغلب برنامه های ویندوز دقت کرده اید؟ چرا همه شکل هم هستند؟ آیا همه از روی هم کپی زده اند؟ نه! دستورات نشان دادن دیالوگ استاندارد Open و Save در فایل comdlg32.dll در System32 قرار دارد تا همه برنامه ها از ان استفاده کنند.
یا فایلهای فوق اعلده معروف و اصلی:
ntdll.dll یکی از ریشه ای و بنیانی ترین بخش های ویندوز در ضمینه مدیریت حافظه و هسته ویندوز، و در شوکت این dll همان بس که kernel32.dll مستقیماً از این dll استفاده میکند.
kernel32.dll مدیریت حافظه و هسته اصلی ویندوز.
gdi32.dll مدیر گرافیکی ویندوز و مسئول بخش اعظم هر آنچه در مانیتور دیده میشود.
user32.dll مدیر ارتباط با کاربر که کنترل و سازمان دهی فرامین را بر اعهده دارد.
advapi32.dll مدیر بانک اطلاعاتی معروف Registry ویندوز.
shell32.dll مدیریت پوسته دیداری و ارتباط با کاربر ویندوز و فرامین سطحی کاربر.
comctl32.dll مدیریت مستقیم تمام کنترلرهای عمومی ویندوز.
(یعنی هر Buttom یا TextBox یا ComboBox و... را که می بینید مدیریت زیربنایی اش توسط این dll صورت میگیرد.)
امیدوارم dll های دیگه که به علت کمی وقت یا فراموشی اسمشان را ننوشتم ناراحت نشوند! ما دوستدارشان هستیم! (dll نیستیم و dll ها را دوست داریم !!!!! از شوخی گذشته من واقعاً dll ها را بیشتر از exe ها دوست دارم و هر زبانی که یاد گرفتم، اول چند و چون dll سازیش را یاد گرفتم و بعد exe !)
هرکدام از این فایلها برای خودشان دنیایی تکنولوژی هستند!!!! و برخیشان شاهکار برنامه نویسی هستند!
اگر به System32 ویندوز نگاهی بیاندازید، در اصل دارید به هسته اصلی مغز ویندوزتان نگاه میکنید!!
به عنوان مثال بهترین برنامه برای دیدن محتویات و روابط این فایلها وجود دارد و نیازی به نصب هم ندارد، Depends.exe است که یک برنامه خیلی کوچک است که با خود VS کپی میشود (ولی نه آخرین ورژنش!)
ونیز اقلب میشود dll را با یک زبان نوشت و در دیگری استفاده کرد. و در محیط دات نت همیشه میشود!
تشخیص محتویات dll نیاز به برنامه های مختلف دارد، چون توسعه تلکنولوژی مربوطه باعث شده dll ها خیلی فراتر روند و شامل انواع و اقسام کدها و اشیا باشند در نتیجه برای هر یک از موارد api - ActiveX - .Net library - Resorce و... برنامه ای خاص وجود دارد ولی بهترین کمک راهنمای شرکت سازنده است.
------------------------------------------------------------
فایل cab هم که اصلاً فرق دارد و یک فرمت فشرده است چیزی شبیه zip و اصلاً شباهتی به dll ندارد، شما یک سری فایل را برای بسته بندی و کوچک شدن cab میکنید و یک بچه دبستانی هم میتواند انجامش دهد!!!!
------------------------------------------------------------
یعنی در کل dll را میشود در ردیف ocx و exe قرار داد و cab را در ردیف zip و rar !