بسمه تعالی
حرف اول ؛
اساسی ترین تفاوت دو سیستم عامل Dos و Windows چیست ؟
جوابش خیلی سخت نیست ، چون اساسا ً همش تفاوته و شباهت بین این دو کمتر پیدا میشه
حالا که اینطوره ؛
چرا برنامه هایی که ما با زبان C ( تحت ویندوز ) مینویسیم ، شبیه برنامه های تحت داس میشه ؟ یا اصلا ً یه چیز دیگه : چطوری از زبان C برای نوشتن برنامه های ویندوزی استفاده میکنند ؟ اصلا ً میشه با زبان C پنجره ، دکمه و سایر اجزای یک برنامه تحت ویندوز را ساخت ؟
جواب این سؤال ها مثبت است ؛ اگر تمام امکانات این زبان ( و البته امکاناتی که خود ویندوز در اختیار ما قرار میدهد ) شناخته بشود همه کار میشه باهاش کرد .. هم می توان برنامه تحت ویندوز نوشت ( مثل خروجی هایی که Delphi یا VS تولید میکنند ) و هم خود ویندوز را ( که البته این دومی خیلی سخته و در اینجا کاری بهش نداریم ! )
در واقع چیزی که باید بدونیم نحوه ی کار پنجره ها و کنترلهای ویندوز است و اینکه سیستم عامل ویندوز چه امکاناتی در اختیار ما برای این کار قرار داده است .
کاری که در این سلسله نوشته ها می خوایم انجام بدیم هم در واقع همینه .. امکانات ویندوز برای این مدل برنامه ها رو بیشتر بشناسیم ، با توابع API ی اون بیشتر آشنا بشیم و بتونیم با زبان C یک برنامه با خروجی ای شبیه زبانهای ویژوال بنویسیم .
انگیزه و هدف
انگیزه من ( از یادگیری و یعد هم نوشتن این مقاله ) تسلط بیشتر روی جزئیات کار زبانهای ویژوال بوده است .. اینکه وقتی مثلا ً در زبان دلفی روی یک فرم ، یک Button قرار میدهیم چه اتفاقی میفته ؟ و یا دستور SendMessage که برای ارسال پیغام استفاده میشه ، دقیقا ً چگونه عمل میکنه ؟ پیغام کی رو به کی میرسونه !؟
حقیقتش اگه بخوایم کاری رو که با دلفی و یا C# و یا VB میشه توی نیم ساعت انجام داد با C انجام بدیم ، باید حداقل دوبرابر وقت بگذاریم .. ولی طبییعیه که اگر بیشتر روی جزئیات مسلط باشیم ( که هدف همه برنامه نویسهاست ) ، بیشتر میتونیم مانور بدیم و در واقع هنرنمایی کنیم .
پیش نیاز
هیچ نیازی نیست که برنامه نویس حرفه ای C باشید . اگه اصل کار یعنی مفاهیم کلی و سینتکس زبان رو بلد باشید که ( احتمالا ً بلد ) هستید میتونید خوندن این مطلب رو ادامه بدید . اگر هم بلد نیستید با یکی از کتابهایی که در این زمینه ترجمه شده میتونید شروع کنید .
مفاهیم پیشرفته تر رو بتدریج خواهید آموخت .
قبل از شروع
شاید در ابتدا کدها و مطالب گنگ و پیچیده به نظر بیاد .. نترسید و ناامید هم نشید .. ادامه بدید .. تدریجا ً مطلب دستتون میاد .
در ضمن MSDN رو هم در مواقع لزوم فراموش نکنید ..
تجربه شخصی
از کامپایلر Turbo C++ version 4.5 برای تست کدهای این مقاله استفاده نکنید که جواب نمیگیرید ..
نکته مهم
سورس کدی را که در انتهای هر پست آپلود میشود را حتما ً بگیرید و بخونید و به نمونه کدهای ( بعضا ً ناقص ) داخل متن این نوشته اکتفا نکنید ..
و دیگر اینکه
اگر در طول مطالعه سؤالی پیش آمد کرد (!) ، یه کم صبر کنید چون به احتمال 90 درصد سؤال شما در ادامه پاسخ داده خواهد شد ( منظور از ادامه ، ادامه کل مقالات است ) .. البته همانطور که گفتم MSDN رو هم فراموش نکنید .
لطفا ً برای حفظ پیوستگی مطالب ، سؤالهای پیش آمده ی احتمالی را در تاپیک های مجزای دیگری که ایجاد میکنید ، ارسال کنید .. در این تاپیک به سؤالات جواب داده نمیشود .. از همکاریتون پیشاپیش ممنونم ..