تور لحظه آخری
امروز : دوشنبه ، 18 تیر 1403    احادیث و روایات:  امام صادق (ع):هركه خوش دارد دعايش هنگام سختى مستجاب شود، هنگام آسايش، بسيار دعا كند.
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

تبلیغات متنی

اتاق فرار

خرید ووچر پرفکت مانی

تریدینگ ویو

کاشت ابرو

لمینت دندان

ونداد کولر

صرافی ارکی چنج

صرافی rkchange

دانلود سریال سووشون

دانلود فیلم

ناب مووی

رسانه حرف تو - مقایسه و اشتراک تجربه خرید

سرور اختصاصی ایران

تور دبی

دزدگیر منزل

تشریفات روناک

اجاره سند در شیراز

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

پیچ و مهره

طراحی کاتالوگ فوری

دانلود کتاب صوتی

تعمیرات مک بوک

Future Innovate Tech

آموزشگاه آرایشگری مردانه شفیع رسالت

پی جو مشاغل برتر شیراز

قیمت فرش

آموزش کیک پزی در تهران

لوله بازکنی تهران

میز جلو مبلی

هتل 5 ستاره شیراز

آراد برندینگ

رنگ استخری

سایبان ماشین

قالیشویی در تهران

مبل استیل

بهترین وکیل تهران

شرکت حسابداری

نظرسنجی انتخابات 1403

استعداد تحلیلی

کی شاپ

خرید دانه قهوه

دانلود رمان

وکیل کرج

آمپول بیوتین بپانتین

پرس برک

بهترین پکیج کنکور

خرید تیشرت مردانه

خرید نشادر

خرید یخچال خارجی

وکیل تبریز

اجاره سند

وام لوازم خانگی

نتایج انتخابات ریاست جمهوری

خرید ووچر پرفکت مانی

خرید سی پی ارزان

خرید ابزار دقیق

بهترین جراح بینی خانم

تاثیر رنگ لباس بر تعاملات انسانی

خرید ریبون

ثبت نام کلاسینو

 






آمار وبسایت

 تعداد کل بازدیدها : 1805522235




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

سؤال يك مبتدي در مورد فايل هاي dll وcab


واضح آرشیو وب فارسی:سایت ریسک: am_merman0108-07-2007, 12:54 AMبا سلام خدمت اساتيد عزيز. من تازه برنامه نويسي رو شروع كردم و اگر زياد سؤالات ابتدايي مپرسم منو ببخشيد. با عرض پوزش ميخاستم بپرسم يك فايل dll چيه و چيكار ميكنه؟ آيا ميشه dllي رو كه با يك زبان نوشته شده در ساير زبان ها به كار برد؟ اصلاً از كجا بفهميم كه محتويات يك dll چيه و چيكار ميكنه؟ وتفاوت فايل dll با فايل cab چيه؟ از اينكه اين همه سؤال پرسيدم معذرت ميخوام ولي چيكار ميشه كرد اينا مربوط به دوران آماتوري ميشه. _H2_09-07-2007, 03:11 PMسلام 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 ها را دوست داریم !!!!! :31: از شوخی گذشته من واقعاً dll ها را بیشتر از exe ها دوست دارم و هر زبانی که یاد گرفتم، اول چند و چون dll سازیش را یاد گرفتم و بعد exe !) هرکدام از این فایلها برای خودشان دنیایی تکنولوژی هستند!!!! و برخیشان شاهکار برنامه نویسی هستند! :31: اگر به System32 ویندوز نگاهی بیاندازید، در اصل دارید به هسته اصلی مغز ویندوزتان نگاه میکنید!! به عنوان مثال بهترین برنامه برای دیدن محتویات و روابط این فایلها وجود دارد و نیازی به نصب هم ندارد، Depends.exe است که یک برنامه خیلی کوچک است که با خود VS کپی میشود (ولی نه آخرین ورژنش!) ونیز اقلب میشود dll را با یک زبان نوشت و در دیگری استفاده کرد. و در محیط دات نت همیشه میشود! تشخیص محتویات dll نیاز به برنامه های مختلف دارد، چون توسعه تلکنولوژی مربوطه باعث شده dll ها خیلی فراتر روند و شامل انواع و اقسام کدها و اشیا باشند در نتیجه برای هر یک از موارد api - ActiveX - .Net library - Resorce و... برنامه ای خاص وجود دارد ولی بهترین کمک راهنمای شرکت سازنده است. ------------------------------------------------------------ فایل cab هم که اصلاً فرق دارد و یک فرمت فشرده است چیزی شبیه zip و اصلاً شباهتی به dll ندارد، شما یک سری فایل را برای بسته بندی و کوچک شدن cab میکنید و یک بچه دبستانی هم میتواند انجامش دهد!!!! ------------------------------------------------------------ یعنی در کل dll را میشود در ردیف ocx و exe قرار داد و cab را در ردیف zip و rar ! دوست داشتم در خصوص dll کاملتر توضیح میدادم و همین باعث شد سوال شما را که دیدم فوراً جواب ندهم تا در فرصت بیشتر مطالب بیشتری تایپ کنم ولی بازم آن چیزی نشد که میخواستم! ولی الآن هم بد نشد !!! موفق باشید. تا شاید فردا و شاید ....!!!!!!!!! am_merman0111-07-2007, 02:18 AMسلام H2 جان واقعاً توضيحات جالبي بود دستت درد نكنه يواش يواش دارم ميفهمم كه هر كدوم از اصطلاحات برنامه نوسي يعني چي. ممنونم كه به فكر ما آماتورها هستي. am_merman0111-07-2007, 02:44 AMدر ابتداي نصب ويندوز محتويات موجود در system32 خيلي كمه ولي بعد از مدتي زياد ميشه علت اين چيه؟ يعني براي استفاده از هر dll بايد اونو به system32 منتقل كرد؟ ونیز اقلب میشود dll را با یک زبان نوشت و در دیگری استفاده کرد. و در محیط دات نت همیشه میشود! در محيط هايه قديمي تر چطور؟ نميشه از dll هاي قديمي در دات نت استفاده كرد؟ من نوشتن dll ها رو بلد نيستم ولي اونارو دوست دارم!!!!!!:31: :27: :31: _H2_11-07-2007, 10:01 AMسلام تقریباً همه نوع dll را میتوان در دات نت استفاده کزد ولی معمولاً نیاز نمیشود! چون کلاسسهای داخلی دات نت شامل شیرمرغ تا جان آدمیزاد میشوند.!!!!! am_merman0113-07-2007, 02:32 AMسلام dll مخفف dynamic link library به معنای "کتابخانه پیوند پویای دینامیکی"، گرچه جدیداً کمی از نامش فاصله گرفته ولی اصل بنیانش فرقی نکرده، به نوعی dll خیلی شبیه exe است و میتواند هر کاری در رایانه انجام دهد و باید با یک زبان برنامه نویسی ساخته شود و برایش کد نویسی کرد. باز هم سلام استاد عزيز:40: :11: :40: ميخواستم بپرسم ميشه dll هارو هم مثل exe ها به هر دستگاهي منتقل كرد و بدون نصب اونارو اجرا كرد ؟ _H2_14-07-2007, 10:24 AMسلام بازهم همان جواب قبلی! مثل exe است و نصب یا عدم نیاز به نصب آن به نوعش و کدهایی که استفاده میکند بستگی دارد و نه همه dll ها بودن رجیستر کار میکنند و نه همه آنها به صرف کپی کردن کار خواهند کرد. am_merman0115-07-2007, 01:10 AMباز هم سلام H2 جان و باز هم سؤال ميخواستم بپرسم كه تكه تكه كردن برنامه با كمك dll ها باعث افزايش سرعت برنامه هم ميشه؟ . . اصلاً H2 جان بيا و يه لطفي بكن: حالا كه داري زحمت ميكشي و كمك ميكني بيا و ساخت dll ها رو با VB 8 آموزش بده. _H2_15-07-2007, 05:09 PMسلام ساخت dll در زبان های تحت فریم وروک مثل VB 8 بسیار ساده است و تقریباً مطلب خفنی برای گفتن ندارد! اما در ++VC باید مطالب زیادی می دانستید که در ساخت exe ها اصلاً وجود نداشتند. هم نظر وقت مشکل دارم و هم اینکه واقعاً چیز خاصی بیش از کدنویسی exe ها نمی بینیم که برای ساخت dll بگویم و مثلاً یک تاپیک بزنم. ولی امیدوارم نیمچه توضیح زیر کافی باشد و به علت ناقص بودنش من را ببخشند. ----------------------------------------------------------------------- ساخت dll در Net. (با اجازه اساتید!) اولین گام ساخت یک پروژه خالی dll است: File->New->Project->Visual [Basic|C#|C++]->Class Library یک پروژه جدید ساخته میشود با یک کلاسس پیش فرض به نام Class1 حال اصلاً نمیخواهد فکر کنید که دارید dll میسازید!!! میتوانید پنجره یا همان فورم جدید به پروژه تان اضافه کنید و دقیقاً مثل exe روی پنجره تان کار کنید و دکمه و کنترل های دیگر روی آن قرار دهید. میتوانید فایل جدید اضافه کنید و نوع های شمارشی (Enum) و یا کلاسس به پروژه تان اضافه کنید. هر بلاک کدی که در درون dll داشته باشید و دارای برچسب یا سطح دسترسی Public باشد، بعد از ساخت dll و AddRefrence کردن آن به پروژه ی دیگر میتوانید ان را استفاده کنید. نخندید! ولی به کد نمونه زیر نگاه کنید که مثلاً در dll ای آن را وارد کرده اید! !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! ای داد بیداد! مگه نگفتم نخند! dll را کامپایل میکنید و بعد در exe یا dll ای دیگر با فرمان Project->Add Refrence->Browse آن را به پروژه تان اضافه میکنید و مثلاً در جایی کد زیر را مینویسید! !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! تک نکته مهم و جالبی که وجود دارد در مورد Debug (اشکال یابی) پروژه های dll است. بهترین راه: حتماً میدانید که در VS یک مفهوم Solution داریم و یک مفهوم Project ، هر Project در اصل یک خروجی نهایی دارد و موجودیت واحد دارد، به ازای هر exe یا dll که دارید در اصل یک Project جدا هم دارید. Solution مجموعه ای از چند Project است و در نتیجه شما میتوانید چند exe یا dll مرتبط با هم را در قالب یک Solution واحد در محیط VS باز کنید و همزمان روی همه انها کار کنید (گرچه نیاز نیست ولی هر Project موجود در Solution میتواند با یکی از زبان های تحت دات نت نوشته شده باشد) و شما به راحتی میتوانید روی همه انها کار کنید و در حالت Debug محل جاری اجرای دستور را خط به خط دنبال کنید و مثلا وقتی دستور نوشته شده در exe تان کدی را در dll تان صدا میزند دنبال ان و به صورت خط به خط به کد های dll بروید و خط اجرا را دنبال کنید (حتی اگر به زبان دیگری باشد!) در نتیجه میتوانید دقیقاً در محل خطای احتمالی در داخل dll برنامه را متوقف کنید (عین exe) و به بررسی دلیل خطا بپردازیر (عین exe) تنها مطلب مهمی که وجود دارد ان است که Refrence را نباید با Browse اضافه کنید. فرض کنید دو پروژه، یکی exe و دیگری dll دارید و میخواهید انها را در قابل یک Solution واحد در VS بازکنید: اولی را در VS باز کنید و سپس دومی را با فرمان File->Add->Existing Project (یا File->Add->New Project) باز کنید، حال باید هر دو پروژه را با هم در SolutionExplorer در سمت راست ببینید. برای اضافه کردن Refrence پروژه dll به پروژه exe که قابلیت Debug به روش گفته شده را هم داشته باشد روی پروژه exe در SolutionExplorer کلیک کنید و یا همانجا با راست کلیل یا با فرامین استاندارد Project->Add Refrence->Projects پروزه dll را به exe اضافه کنید. چه در حالت Project->Add Refrence->Browse و یا Project->Add Refrence->Projects به راحتی میتوانید با دادن نام "فضای نام" dll که معمولاً همان نام dll است به ماژول ها و کدهای داخل ان دسترسی پیدا کنید. ولی اگر سورس dll را داشته باشید (مثلاً خودتان آن را نوشته باشید) و با Project->Add Refrence->Projects اقدام کنید آنگاه در اشکال یابی کدها راحت تر خواهید بود و عین exe در صورت خطا، خط محل خطا را خواهید دید چه آن خط مشکل دار در dll باشد و چه در exe باشد. اگر هم کارتان با ساخت dll تمام شده و دیگر به صحت کارکرد ان اطمینان دارید یا میخواهید ان را به کس دیگری هم بدهید، کافیست (عین exe ها!) پروژه dll خود را در حالت Release کامپایل کنید و dll نهایی را از محل binRelaese بردارید. در آخر هم کافیست dll تان در کنار exe تان کپی شود و نیاز به هیچ عملیات نصب خاصی ندارد و وجودش در کنار exe کافیست (گرچه میتوان آن را در محل اسمبلی های عمومی دات نت (GAC) هم نصب کرد) یک پروژه نمونه هم وجود دارد که البته قصدش چیز دیگری بوده و یک exe و dll با هم وجود دارند و dll شامل یک کلاسس با دو متد Shared (یا همان static در C) است، که تعدادی عکس را که داخل dll به صورت embed شده هستند را در اختیار exe قرار میدهد! گرچه کار مزخرفی است ولی دوستان اینجا هم میتوانند به عنوان یک نمونه درپیت(!) ان را دانلود کنند و ببیند. !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! am_merman0116-07-2007, 02:59 AMH2 :10: جان دستت درد نكنه خيلي عالي بود :12: :33: اصلاً هم خنده نداشت:27: تقريباً خيلي از مشكلاتم با همين يك مثال ساده حل شد :15: انشاء ا... خدا خيرت بده:11: سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 3056]

bt

اضافه شدن مطلب/حذف مطلب




-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن