فرمت فایل 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 (درباره توابع ایستا)
حمایت مالی از سایت

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

47 دیدگاه در“فرمت فایل DLL چیست؟

  • ۴ تیر ۱۳۹۴ در۲۰:۲۲
    پیوند یکتا

    سلام و تشکر ویژه بابت مطلاب مفید
    دیدم که در مورد mime نوشتین میشه بیشتر توضیح بدین چیه؟
    من روی لینک های که اشاره به یک تصویر با فرمت jpg هستند کلیک می کنم مرور گر به جای نمایش اون تصویر یه سری کاراکتر در هم و بر هم نمایش میده، ولی وقتی تصویر رو save میکنم رو هارد لوکال میشه با انتخاب برنامه مناسب بازش کرد،
    کمی تحقیق کردم حدس میزنم نوع mime تصویر مناسب نیست، یعنی چه این حرف؟
    چطوری میشه با کلیک روی لینک تصاویر خود مرورگر اونها رو نمایش بده (مثلا در یک tab جداگانه– مثل کاری که برای نمایش فایل های pdf انجام میده و اونها رو در یک tab جدا نمایش میده) ( مرورگرم موزیلا فایر فاکس هست) آیا راهی برای تنظیم این مورد هست؟

    پاسخ
    • ۵ تیر ۱۳۹۴ در۰۷:۴۵
      پیوند یکتا

      سلام. اگه از سمت سرور تنظیم شده باشه که بجای نشون دادن فایل، اونو دانلود کنه، مرورگر هم دانلودش میکنه و نشون نمیده بصورت یپشفرض.
      مقادیر MIME رشته هایی هستن که به عنوان یک استاندارد برای فرمت فایل ها تعیین میشن. هنگام آپلود کردن یا دانلود کردن فایل، مرورگر و سرور به مقدار MIME توجه میکنه و طبق اون میگه که این فایل یه عکسه یا یه فایل ZIP.
      برای مشاهده تصاویر هم بهتره روی تصویر کلیک راست کنید و copy image location رو بزنید بعد لینک تصویر رو به صورت مستقیم پیست کرده و ببینیدش.

      پاسخ
  • ۵ تیر ۱۳۹۴ در۲۱:۱۵
    پیوند یکتا

    بسیار ممنون و بسیار تشکر
    منظورتون سروری هست که سایت روشه؟
    خب نمیشه اونو تغییر داد؟ ( یعنی خود صاحب سرور که سایتو ساپورت می کنه یا مسئول سایت)
    موقعه آپ لود کردن چطوری mime روو تنظیم کنیم تا به جای چیزای در هم و برهم خود عکس رو (با کلیک کردن روی آن) نشون بده؟

    پاسخ
    • ۶ تیر ۱۳۹۴ در۰۵:۴۷
      پیوند یکتا

      سلام. از سمت سرور، صاحبش میتونه عوض کنه ولی اینطور که معلومه صاحب خود سایت ست کرده که بجای نشون دادنش دانلود شه. یکم توضیحات فنی تر:
      صاحب سایت میاد از متادیتای Content-Disposition: attachment در هدر یا در داخل کدهای HTML از آرگامنت download (مثلا Show) استفاده میکنه و مرورگر بجای نشون دادن اونو دانلود میکنه.
      موقع آپلود کردن هم شما کاری لازم نیست انجام بدید چون مرورگر با توجه به فرمت فایل MIME استاندارد برای اونو در هدر قرار میده و لازم نیست شما تنظیمش کنید. برای مثال هنگام آپلود کردن فایل dll هدر Content-Type: application/x-msdownload هم باهاش ارسال میشه.

      پاسخ
  • ۲۷ مرداد ۱۳۹۴ در۰۶:۴۴
    پیوند یکتا

    سلام خسته نباشید امید وارم در اموزش مثل بعضی ها گدا بازی در نیاورید و حق مطلب بیان کنید خیلی خیلی ممنون

    پاسخ
    • ۲۸ مرداد ۱۳۹۴ در۱۲:۳۳
      پیوند یکتا

      سلام. نه دوست عزیز مطمئن باشید 🙂

      پاسخ
  • ۲۷ مرداد ۱۳۹۴ در۰۶:۵۳
    پیوند یکتا

    یک سوال دارم در برنامه نویسی چگونه میتوان به در گاهها دسترسی داشت مثلا من میخواهم در یک برنامهام به کارت tv یاcapture دسترسی داشته باشم سئوال در سئوال بعدی که یک سئوال کرده باشم با چه برنامه ای می توان فایل dll را دید

    پاسخ
    • ۲۸ مرداد ۱۳۹۴ در۱۲:۳۵
      پیوند یکتا

      سلام. برای برقراری ارتباط با سخت افزارهای دیگه باید بلد باشید چجوری از درایورشون استفاده کنید. برای مشاهده dll ها هم میتونید از دیکامپایلرهایی مثل Reflector و ILSpy استفاده کنید.

      پاسخ
  • ۲ آبان ۱۳۹۴ در۱۴:۴۹
    پیوند یکتا

    سلام منم خیلی به رایانه وهر چی به اون مربوط میشه علاقه دارم خواستم کمکم کنی تا ترفندها واستفاده بهتر از سیستم رو یاد بگیرم.ممنون

    پاسخ
    • ۴ آبان ۱۳۹۴ در۱۱:۰۲
      پیوند یکتا

      سلام. خوبه که به کامپیوتر علاقه دارید. به زودی آموزش های مربوط به کامپیوتر پایه رو شروع میکنم به نوشتم. البته نه به این زودیا.

      پاسخ
  • ۸ آبان ۱۳۹۴ در۲۳:۳۰
    پیوند یکتا

    سلام
    آقا من تووی سیستمم آمدم یکی از این هارو (فرمت dll) رو با نات پد باز کردم حالا هرچی از اینا تووی سیستمم هست همش با آیکون نات پد میاد
    چجوری برش گردونم به حالت اولش ؟ همون آیکون دنده

    پاسخ
    • ۹ آبان ۱۳۹۴ در۲۱:۲۰
      پیوند یکتا

      سلام. خط فرمان ویندوز (cmd.exe) رو باز کنید و دستور زیر رو توش اجرا کنید:
      assoc .dll=dllfile
      موفق باشید.

      پاسخ
      • ۱۳ آبان ۱۳۹۴ در۱۲:۴۵
        پیوند یکتا

        یک راه دیگه اینه که از control panel روی گزینه default program کلیک کنید , و فرمت پیش فرضو تعیین کنید

        پاسخ
  • ۳ آذر ۱۳۹۴ در۰۶:۳۹
    پیوند یکتا

    سلام
    توی برنامه plc pcs7 هنگام اجرا حدود ۲۰ خطای با عنوان عدم بارگذاری فایلهایی با پسوند dll میده که نهایتا نمیتونم برنامه رو اجرا کنم ایا راهی هست بدون نصب مجدد برنامه بتونم برنامه رو درستش کنم. همین فایلها در محل نصب نرم افزار وجود دارند ولی نمیدونم چرا ایراد میگیره؟
    لطفا پاسختون رو برام ایمیل کنید
    ممنونم

    پاسخ
    • ۵ آذر ۱۳۹۴ در۲۰:۱۰
      پیوند یکتا

      سلام. فایل های dll رو به پوشه system32 ببرید ببینید درست میشن یا نه. در ضمن میتونید با regsvr هم dll ها رو رجیستر کنید.

      پاسخ
  • ۶ آذر ۱۳۹۴ در۱۱:۰۶
    پیوند یکتا

    سلام
    از یه همچین فایل میخوام ایمیج بگیرم ولی ارور میده .
    با الکل ۱۲۰ و کلن سی دی امتحان کردم جواب نداد.
    اگه برنامه ای هست که میتونه این کارو انجام بده ممنون میشم راهنماییم کنی

    پاسخ
    • ۱۰ آذر ۱۳۹۴ در۲۰:۴۷
      پیوند یکتا

      سلام. از فایل dll میخواین ایمیج بگیرین؟ مطمئنین iso یا img نیس؟ میشه بیشتر توضیح بدین؟

      پاسخ
  • ۲۷ آذر ۱۳۹۴ در۱۶:۳۴
    پیوند یکتا

    سلام
    سالی که شما دنیا اومدی من سال دوم دانشگاه بودم
    امیدوارم همیشه هدفمند و موفق باشی
    مشکلی که من دارم اینکه اشتباهی فرمت فایل dll رو عوض کردم که در واقع کرک یک برنامه زبان بود
    و حالا نمیدونم چطور فرمتش رو برگردونم به همون فرمتی که بود
    بعد قبل از این هم یه مدت مشکل خطای rundll32.exe رو داشتم که بعد رفع شد از بس از این برنامه های رفع خطا استفاده کردم نمیدونم بالاخره چی تعمیرش کرد
    ولی به هر حال گاهی توی برنامه ها مثل دیکشنری هایی که روی لپ تاپ میریزم هنوز هم از این خطاهای dll میده که میگه missing dll
    به هر حال سوال من الان اینه که چه فرمتی رودانلود کنم که تو قسمت فرمت ها داشته باشم که بعد این فایل رو تو قسمت open with برش گردونم به شکل اولیه ش
    یعنی الان یه برنامه text reader ریختم کرکش فرمتش dllهست بعد هر چی کرک رو توی محل برنامه مربوط به صوت این برنامه کپی میکنم باز هم میگه که کرک نشده
    حالا بنظر شما کرک نشدن این برنامه ربطی به این مشکل dll داره ؟
    با تشکر

    پاسخ
    • ۳ دی ۱۳۹۴ در۲۱:۰۵
      پیوند یکتا

      سلام. پسوند فایل ها رو میتونید با تیک زدن گزینه مشاهده Extension ها در تنظیمات فایل اکسپلورر، تغییرشون بدید.
      درباره مشکل بعدیتون، بله میتونه از ناقص بودن فایل های دی ال ال خود سیستمی باشه. اگه دی ال الی پیدا نشد و خطای missing داد یا مشکل از فایل های سیستم عامله یا dll مربوطه کنار برنامه نصب نشده یا کار یه ویروس و بد افزاره.

      پاسخ
  • ۱ دی ۱۳۹۴ در۲۰:۱۲
    پیوند یکتا

    خیلی ممنون از مطالب و راهناییهاتون.متشکر.

    پاسخ
  • ۱۲ دی ۱۳۹۴ در۱۱:۲۸
    پیوند یکتا

    سلام
    شما با برنامه Wizcon Supervisor که برنامه جهت ارتباط با PLC صنعتی هست کار کردید؟
    سوالی که من داشتم اینه که چرا در حین کار با برنامه، نرم افزار بصورت ناگهانی بسته میشه و از برنامه خارج میشه.یا شماتیک برنامه گاهاً بصورت ناقص لود میشه.
    با تشکر

    پاسخ
    • ۱۴ دی ۱۳۹۴ در۱۸:۰۲
      پیوند یکتا

      سلام. متاسفانه با این برنامه ها کار نکردم. پیشنهاد میکنم لاگ هاشونو (اگه داشتن) دنبال کنید تا بفهمید که مشکل از کجاس، چون این برنامه ها تخصصی هستن.

      پاسخ
  • ۱۹ دی ۱۳۹۴ در۲۲:۴۴
    پیوند یکتا

    سلام گویا یکی از فایل های Dll لپتاپ من به نام cameravideo.dll پاک شده و هربار که ویندوز بالا میاد یک ارور rundll نمایش داده میشه و میگه که این فایل گم شده.نمیدونم باید چیکار کنم.لطفا راهنمایی کنید خیلی ممنون
    _____
    مسیر این فایل هم C:\users\vahid\appdata\local\cameravideo\zbin\cameravideo.dll هستش

    پاسخ
    • ۲۲ دی ۱۳۹۴ در۱۰:۲۷
      پیوند یکتا

      سلام. برنامه ای که برای دوربین نصب کرده بودین رو پاک کنید و از اول نصبش کنید تا این فایل dll هم نصب بشه. چون cameravideo.dll به نظر نمیاد واس ویندوز باشه یا یه جوری باشه که بشه دانلودش کرد و به صورت دستی اضافش کرد.

      پاسخ
  • ۲۸ بهمن ۱۳۹۴ در۰۲:۳۵
    پیوند یکتا

    سلام
    خسته نباشید
    من می خواستم یک نرم افزار را نصب کنم و keygen آن با فرمت dll می باشد
    چطور باید keygen را باز کنم زیرا وندوز پشتیبانی نمی کند
    باتشکر

    پاسخ
    • ۳۰ بهمن ۱۳۹۴ در۲۳:۳۹
      پیوند یکتا

      سلام. باید در مسیر نصب برنامه یا تو مسیری که معمولا تو فایل Readme گفته میشه اون فایل رو جایگزین کنید.

      پاسخ
  • ۶ اسفند ۱۳۹۴ در۱۲:۰۲
    پیوند یکتا

    سلام
    یه نرم افزار مخصوص به یه سنسور داریم…حالا خودمون میخوایم یه نرم افزار دیگه برای این سنسور بنویسیم…میخوایم بدونیم از کجا باید بفهمیم که آیا اون نرم افزار مخصوص به سنسور به ما API میده که از اطلاعات و امکاناتش تو نرم افزار خودمون استفاده کنیم یا نه ؟

    پاسخ
    • ۹ اسفند ۱۳۹۴ در۱۶:۱۱
      پیوند یکتا

      سلام. بستگی به اون سنسور و درایورش داره! اگه قطعه نایابی نباشه حتما دیتاشیت اون موجوده.

      پاسخ
  • ۲۵ اسفند ۱۳۹۴ در۰۹:۵۶
    پیوند یکتا

    سلام.من امیررضا ۱۴ساله هستم.هنوز خیلی از چیز های کامپیوتر رو نمی دونم.به نظر شما بهتره از کجا شروع کنم و چه چیزهایی رو بخونم؟

    پاسخ
    • ۱۱ فروردین ۱۳۹۵ در۱۶:۱۹
      پیوند یکتا

      سلام. والا من کامپیوتر رو به صورت استاندارد یاد نگرفتم و فکر کنم برای همه این روش مناسب باشه. پیشنهاد میکنم اول کارکرد سخت افزارهای اصلی کامپیوتر رو یاد بگیرید ولی به مباحث پیچیده وارد نشید و همینجوری قبولشون کنید در کنار این زبان انگلیسی رو یاد بگیرید چون در آینده خیلی به دردتون میخوره و حتما و حتما سعی کنید با یه زبان برنامه نویسی (مثلا VB6 یا VB.NET براتون خوبه) کار کنید همیشه.

      پاسخ
  • ۲۸ اسفند ۱۳۹۴ در۱۴:۰۴
    پیوند یکتا

    سلام
    من یک نرم افزار دارم بنام sdrmap که روی ویندوز xp اجرا میشه ولی روی win 7 اجرا نمیشه
    نرم افزار نقشه برداری است.
    این نرم افزار دارای یک فایل SVG.DRV است که همین فایل باعث عدم اجرای ان در محیط WIN7 میشه
    آیا شما می تدانید این فایل را بنحوی تبدیل کنید که ۳۲ بیتی بشه و ویندوز ۷ اونو بخونه؟؟؟

    پاسخ
    • ۴ فروردین ۱۳۹۵ در۰۳:۱۱
      پیوند یکتا

      سلام. ممکنه نشه ولی یه راه مطمئن داره اونم استفاده از ماشین های مجازی ساز برای استفاده از ویندوز ایکس پی تو ۷ ـه.

      پاسخ
  • ۶ فروردین ۱۳۹۵ در۱۷:۲۶
    پیوند یکتا

    سلام آقای مهندس
    نرم افزار به نام ARCGIS که دارای اپلیکشنی به نام GEOREFERNCE. می خواهیم این اپلیکشن را به گوگل ارث منتقل کنیم . آیا امکانش هست؟
    با تشکر

    پاسخ
    • ۶ فروردین ۱۳۹۵ در۱۹:۵۱
      پیوند یکتا

      سلام. متاسفانه با اینا تا حالا کار نکردم.

      پاسخ
  • ۸ فروردین ۱۳۹۵ در۲۳:۳۸
    پیوند یکتا

    خسته نباشید . یه سوال داشتم. من با انتیویروس که کامپیوتر رو چک میکنم میگه این فایل شما ویروسی است:
    cdo1754163401.dll
    حالا میخوام ببینم چون این فایل با پسوند dll پاک کردنش مشکلی داره یا نه؟
    ممنون میشم جواب بدید.
    با تشکر

    پاسخ
    • ۱۱ فروردین ۱۳۹۵ در۱۶:۵۹
      پیوند یکتا

      سلام. بستگی داره که این فایل مربوط به چی باشه. ممکنه ویروس یه فایل dll سیستمی رو اینفکت کنه و حذف کردنش مشکل بوجود بیاره. ولی من این فایل رو ندیدم و فکر کنم حذف کردنش مشکلی پیش نمیاره.

      پاسخ
  • ۱۵ فروردین ۱۳۹۵ در۱۵:۱۵
    پیوند یکتا

    ممنون بابت مطالب پر بار و جالبتون
    موفق باشی

    پاسخ
    • ۱۸ فروردین ۱۳۹۵ در۲۲:۲۲
      پیوند یکتا

      ممنونم ازتون. شما هم موفق باشید 🙂

      پاسخ

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *