نویسندگی در بایت گیت

فرمت فایل DLL چیست؟

فرمت فایل DLL و LIB و OCX مربوط به کتابخانه‌هایی است که شامل توابع، کدها و داده‌هایی است که می‌توانند به صورت همزمان توسط چندین برنامه مورد استفاده قرار بگیرند

 

فرمت فایل DLL چیست؟

فرمت (Extension) فایل DLL یک فرمت استاندارد برای ویندوز مایکروسافت بوده و مخفف عبارت Dynamic-Link Library است. فایل‌های lib و ocx و drv هم تقریباً مشابه DLL هستند. یک فایل DLL شامل توابع، کدها، منابع (تصویر، آیکون و ...) و داده‌هایی است که به توسعه دهندگان و برنامه نویسان این امکان را فراهم می‌کنم با به آن‌ها لینک نموده و از توابعشان در برنامه‌های خود استفاده کنند. یکی از خواص مهم فایل‌های کتابخانه‌ای DLL این است که در یک زمان چندین برنامه می‌توانند از آن‌ها استفاده کنند درحالی که کدهایش در یک مکان ثابت قرار داشته و نیازی به گرفتن فضای بیشتر برای هر برنامه نیست.

 

چرا این فایل‌ها را کتابخانه نامیده اند؟

بگذارید مثالی بزنم: یک کتابخانه عمومی را فرض کنید که پر از کتاب‌های آشپزی و در هر یک از این کتاب‌های آشپزی یک دستور پخت نوشته شده است و افراد به کتابخانه سر زده و از آن کتاب‌ها استفاده می‌کنند. فایل‌های DLL نیز این چنین هستند؛ یعنی پر از توابع مختلف که هر یک کار خاصی را انجام می‌دهند و برنامه‌ها می‌توانند از آن‌ها استفاده کنند.

 

برنامه‌ها چگونه از این کتابخانه‌ها استفاده میکنند؟

۱- برنامه نویس در ابتدای برنامه تعریف می‌کند که با استفاده از تابع LoadLibrary خود ویندوز، کتابخانه مورد نظر را در برنامه بارگذاری کند. به همین دلیل است که اگر فایل dll مورد نظر وجود نداشته باشد، در همان ابتدا برنامه با خطا مواجه خواهد شد.

۲- وی با استفاده از تابع GetProcAddress ویندوز، فانکشن یا تابع مورد نظر خود را از فایل DLL بارگذاری کرده ویا با تابع LoadResource ویندوز، یک منبع (مثلا تصویر) را از فایل DLL بارگذاری می‌کند.

۳- برنامه آن تابع را اجرا نموده یا از منابع فایل استفاده می‌کند.

۴- در نهایت با استفاده از تابع FreeLibrary ویندوز، پس از آن که کارش تمام شد، فایل DLL را Unload می‌کند.

 

آیا توابع DLL را می‌توان به صورت مستقیم فرا خواند؟ چگونه؟

توابع DLL تنها با استفاده از برنامه‌ها و فایل‌های EXE می‌توانند اجرا شوند چون در آن‌ها می‌توان از توابع نام برده ویندوز (LoadLibrary و ...) استفاده کرد. بنابراین نمی‌توان به صورت مستقیم و بدون هیچ چیزی از توابع و منابع فایل DLL استفاده نمود.

اما ویندوز برای این مشکل راه کاری را در نظر گرفته و آن ساخت یک برنامه برای اجرای این تابع‌ها است. اسم این برنامه در ویندوز RUNDLL.EXE و RUNDLL32.EXE است. این برنامه از تابع گفته شده در ویندوز به عنوان یک ورودی استفاده کرده و تابع فایل DLL که قابلیت اجرا شدن بدون مشکل را داشته باشد، فراخوانی می‌کند. نحوه استفاده از این ابزار به این صورت است:

Rundll32.exe <DLLName>,<Function> <Optional Arguments>

این دستور را می‌توان در دیالوگ Run یا خط فرمان CMD اجرا کرد. بجای <DLLName> آدرس کامل فایل DLL یا اگر در پوشه سیستم بود، تنها نام آن، بجای <Function> تابع دلخواه و بجای <Optional Arguments> پارامترهای دلخواه برای تابع انتخاب شده را وارد کنید. برای مثال، تابع OpenAs_RunDLL در کتابخانه shell32.dll را فرض کنید که باعث اجرا شدن دیالوگ Open With می‌شود. برای اجرای این دیالوگ در مسیر دلخواه فایل از دستور زیر استفاده می‌کنیم:

rundll32.exe shell32.dll,OpenAs_RunDLL C:\Users\AmirrezA\Desktop\aa.html

به همین سادگی 🙂

مشخصات پسوند فایل DLL:

  • نوع MIME یا اینترنت مدیا تایپ: application/x-msdownload
  • طراحی شده توسط: شرکت مایکروسافت (Microsoft)
  • فرمت‌های تقریبا مشابه: OCX - LIB - DRV و EXE (درباره توابع ایستا)
حمایت مالی از سایت

مبلغ مورد نظر:
نام:
ایمیل:
دلیل حمایت:
* فیلدهای نام، ایمیل و دلیل حمایت اختیاری اند.
* پرداخت با کمک پورتال زرین پال و با کارت‌های عضو شتاب انجام می‌پذیرد.

دیدگاه ها بسته شده است.