[b]به نام خدا
سلام دوست عزیز!! :cool:
گوش کن که خیلی حرف دارم :
1 - این Res.* اصلاً چی هست؟ ----------------------------------------------
res مخفف کلمهء Resources است.
به معنای منابع که اشاره دارد به منابعی غیرِ از کد برنامه که در برنامه استفاده می شوند.
مثلاً فرض بفرمایید که شما تعدادی تصویر JPG را در برنامهء خود استفاده کرده اید و نمی خواهید این تصاویر را همراه فایل Executable برنامه به کسی تحویل دهید.
بلکه در عوض می خواهید این عکس را با فایل Exe برنامه پیوند بزنید.
حتماً متوجه اید که این جوری خیلی حرفه ای تره!!
همین کار را در مورد سایر اطلاعاتی که در برنامه به صورت منابع مورد ارجا واقع می شوند می توان انجام داد - مثلا:
شما می توانید فایل های موسقی، رشته های کاراکتری، عکس یا تصویر، آیکون، اطلاعات مربوط به نگارش و حق کپی رایت(که در ایران زیاد به درد نمی خورد) و همچنین هر منبع دلخواهی را به فایل Exe پیوند بزنید!! (خیلی جالبه نه؟)
res در واقع فایلی است حاوی منابعی که شما می خواهید به برنامه پیوند بزنید که به صورت کامپایل شده در آمده و آماده است که با exe لینک شود.
در اغلب محیط های برنامه نویسی تحت ویندوز نام و مشخصات منابع پیوندی
در فایلی با پسوند rc ذخیره می شود. و نتیجهء کامپایل شدهء آن در فایل Res
محتویات فایل res کامپایل شده است و به صورت خاصی در آمده تا قابل پیوند زدن به فایل exe dll یا obj باشد و قابل درک و تغییر دادن نیست.
برای تعیین محتوای آن باید فایل rc همراه آن را تغییر داد این فایل محتوایش قابل درک است سپس در هنگام ترجمه پیش از کامپایل برنامه ای به نام کامپایلرِ منبع از روی این فایل rc فایل res را می سازد.
سپس بعد از کامپایل برنامه linker این فایل را با فایل ترجمه شده (dcu, obj, ...) را با res پیوند می دهد تا فایل exe یا dll نتیجه ساخته شود.
از منابع خصوصا برای پشتیبانی از چند زبانی هم استفاده می شود.
2 - res در محیط های برنامه نویسی مختلف ---------------------------------
از آنجا که شما دوست عزیز نگفتید که به طور خاص چه محیط هایی را در
نظر دارید و من هم می خواهم حرفهام کلی باشه تا به درد همه بخوره
اکنون محیط های مختلف را برای شما توضیح می دهم:
در ++Microsoft Visual C البته حالتِ Win32, MFC
در این محیط پشتیبانی کاملی از ایجاد و مدیرت منابع به صورت res به عمل می آید.
شما می توانید در تمام Visual C ها res را به راحتی بسازید و مدیریت کنید.
در VC 6.0 برای پروژهء شما یک فایل res , rc به طور خود کار ساخته و مدیریت می شود.
بعد از ساختن پروژه می توانید در پنجرهء Workspace برگهء ResourceView
را انتخاب کنید و منابع برنامه را مدیرت کنید
برای حذف می توانید بعد از انتخاب DEL را بزنید
و برای وارد کردن موارد جدید ....Insert|Resource را از منوی اصلی انتخاب کنید.
در این پنجره میتوانید منبع خود را بسازید اگر منبع شما به صورت یک فایل از پیش موجود است با دکمهء Import آنرا وارد کنید
و اگر منبع جدیدی را می خواهید تعریف کنید که از پیش موجود نیست
مصل یک فایل WAV میتوانید با دکمهء Resource Type آنرا تعریف کنید.
و مثلا آنرا تحت عنوان IDR_SOUND_WAV ایجاد کنید.
با کامپایل برنامه همه چیز به راحتی ساخته می شود و همین طور فایل res.
در محیط VC 7.0 , 8.0 شما کارتان چندان تفاوتی با آنچه گفته شد ندارد در این محیط همه چیزِ resource ها از طریق پنجرهء Resource View و راست کلیک بر روی عناصر آن در دسترس است.
در محیط Delphi تا نسخهء 7.0 اوضاع بدین شکل بود که باید این کار ها را دستی انجام می دادید.
فرض کنید در Delphi 6.0 می خواهید یک منبع ساخته و به برنامهء خود پیوند بزنید. برای این کار می توانید به صورت دستی یک فایل با پسوند rc ساخته و موارد زیر را با کمک Notepad در آن بنویسید:
کد:
IDR_WAV_MY_MUSIC WAV "C:\\MyFavoritesMusic.wav"
IDR_BITMAP_FACE BITMAP "C:\\MyFace.BMP"
نام این فایل را MyRes.rc بگذارید.
در دایرکتوری نصب Delphi یک folder به نام Bin وجود دارد
که در آن کامپایلر منبع بورلند به نام brcc32.exe را می بینید
با کمک Command Prompt دستور زیر را اجرا کنید:
brcc32.exe MyRes.rc
برای راحتی توصیه میکنم برای انجام این کار از یک Batch File استفاده کنید.
اکنون فایل MyRes.res ساخته می شود
برای پیوند زدن آن با برنامهء خود دستور زیر را در source برنامهء خود وارد کنید:
فرض کنید یک کنترل Image در برنامه خود دارید در این صورت
بله اکنون می توانید دستوری نظیر این را در بر نامه خود استفاده کنید:
کد:
PlaySound(IDR_WAV_MY_MUSIC, 0, SND_RESOURCE or SND_ASYNC);
Image2.Picture.Bitmap.LoadFromResourceName(HInstance, 'IDR_BITMAP_FACE');
البته برای استفاده از PlaySound حتما MMSystem را به لیست Uses اضافه کنید!
نوبتی هم که باشه نوبته VB 6.0 می رسه.
در vb 6.0 هم می توانید از برنامه VB Resource Editor استفاده کنید
که به صورت Plug-in همراهه VB از طریقه Add in Manager در دسترسه
اگه میخواهید منابع یک فایل را ببینید و مدیریت کنید
پسوند فایل exe را به dll تغییر دهید! سپس آنرا در محیط Visual Studio .Net باز کنید.
اکنون مثل Resource Editor همه چیز قابل دیدنه!!!
البته اعماله تغییرات به منابع فایلی که به صورت exe در آمده می تواند به آن آسیب بزند.
در محیط های dotNet در تمام زبانها مدیریت منابع به شکل واحدی انجام می شود که از اساس با آنچه از res گفته شد تفاوت دارد!!
در Microsoft Visual Studio 2005 هنگام ساخت پروژه در Solution Explorer
از نمای درختی Properties را انتخاب کنید و بر روی Resources.resx
double-Click کنید در پنجره ای که ظاهر می شود می توان منابع برنامه را مدیریت کرد.
Delphi 2006 و سایر محیط های dotNet هم روش مشابه ای دارند.
البته سازوکاره مدیریت منابع در dotNet از بنیان متفاوته.
سعید.ت