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

تبلیغات

تبلیغات متنی

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

صرافی rkchange

سایبان ماشین

دزدگیر منزل

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

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

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

Future Innovate Tech

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

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

آراد برندینگ

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

موسسه خیریه

واردات از چین

حمية السكري النوع الثاني

ناب مووی

دانلود فیلم

بانک کتاب

دریافت دیه موتورسیکلت از بیمه

طراحی سایت تهران سایت

irspeedy

درج اگهی ویژه

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

دانلود فیلم هندی

قیمت فرش

درب فریم لس

زانوبند زاپیامکس

روغن بهران بردبار ۳۲۰

قیمت سرور اچ پی

خرید بلیط هواپیما

بلیط اتوبوس پایانه

قیمت سرور dl380 g10

تعمیرات پکیج کرج

لیست قیمت گوشی شیائومی

خرید فالوور

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

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

خرید اکانت تریدینگ ویو

خرید از چین

خرید از چین

تجهیزات کافی شاپ

نگهداری از سالمند شبانه روزی در منزل

بی متال زیمنس

ساختمان پزشکان

ویزای چک

محصولات فوراور

خرید سرور اچ پی ماهان شبکه

دوربین سیمکارتی چرخشی

همکاری آی نو و گزینه دو

کاشت ابرو طبیعی و‌ سریع

الک آزمایشگاهی

الک آزمایشگاهی

خرید سرور مجازی

قیمت بالابر هیدرولیکی

قیمت بالابر هیدرولیکی

قیمت بالابر هیدرولیکی

لوله و اتصالات آذین

قرص گلوریا

نمایندگی دوو در کرج

خرید نهال سیب

وکیل ایرانی در استانبول

وکیل ایرانی در استانبول

وکیل ایرانی در استانبول

 






آمار وبسایت

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




هواشناسی

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

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
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]
[تعداد بازديد از اين مطلب: 3063]

bt

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




-


گوناگون

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


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