نمایش نتایج 1 تا 6 از 6

نام تاپیک: مقاله : آموزش Win32 API ( برنامه نویسی ویندوز با C )

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #2
    کاربر دائمی آواتار www2006
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    Mash <--> Teh
    پست
    187

    ساده ترین برنامه Win32

    خوب بریم سر اصل مطلب :

    اگر در این زمینه کاملا ً مبتدی هستید ، برای اینکه تست کنید که اصلا ً قادر به کامپایل برنامه ی ویندوزی هستید یا نه ، از کد زیر استفاده کنید :

    #include <windows.h>

    int WINAPI
    WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR pszCmdLine, int iCmdShow)
    {
    MessageBox(NULL,"Hello World!", "First Win App", MB_OK | MB_ICONEXCLAMATION);
    return 0;
    }
    اگر با پیغام خطا مواجه شدید و برنامه بدرستی کامپایل نشد ، سعی کنید خطای بوجود آمده را اصلاح کنید !
    ( البته مسلما ً این خطا از کد بالا نیست و به احتمال زیاد از کامپایلر شماست همانطور که قبلا ً هم گفتم بعضی از کامپایلر ها مثل Turbo C++‎ 4.5 در اجرای این کدها ناتوان هستند )

    اگر با Warning ای مواجه شدید مبنی براینکه پارامترهای WinMain بدرستی ست نشده اند ، فعلا ً اهمیت ندهید ( البته معمولا ً به Warning ها اهمیت داده نمیشود !)

    اگر برنامه شما بدون مشکل کامپایل شد و پیغام Hello World! را دریافت کردید ، خواندن را ادامه دهید ..

    توضیح کد :

    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance , LPSTR lpCmdLine, int nCmdShow)
    تابع ( )WinMain در ویندوز معادل تابع ( )Main است در Dos و Unix . در واقع اینجا جایی است که برنامه شما شروع به اجرا میکند . پارامترهای آن به شرح زیر هستند :

    HINSTANCE hInstance : هندلی است به ماژول اجرایی برنامه ( همون فایل .exe که درحافظه در حال اجراست )

    HINSTANCE hPrevInstance : برای برنامه های Win32 همیشه Null است .

    LPSTR lpCmdLine : آرگومانهای خط فرمان که بعنوان یک رشته ی منفرد هستند . اینها نام برنامه را شامل نمی شوند .

    Int nCmdShow : یک مقدار Integer که ممکنه به ShowWindow() پاس داده بشه .. بعدا ً بهش میرسیم .

    hInstance برای بارگزاری ریسورس ها ( loading resources ) استفاده میشود و البته هر آنچه که اساس هر ماژول است . یک ماژول میتواند یا یک فایلexe باشد ویا یک فایل dll که در برنامه ی شما لود میشود. برای اکثر برنامه های این نوشته ، فقط یک فایل exe وجود دارد .

    hPrevInstance بعنوان هندلی برای نمونه ی قبلی اجرا شده برنامه شما در Win16 استفاده میشود .. در Win32 از آن استفاده نمیشود.

    فراخوانی مجمع
    WINAPI تعیین کننده فراخوانی همکار است و تحت عنوان _stdcall تعریف میشود .. فعلا ً به معنی و مفهومش کاری نداشته باشید . همین قدر به خاطر بسپارید که در اینجا از آن استفاده شده است .


    انواع داده Win32
    شما خیلی از کلمات کلیدی را برای انواع داده در ویندوز در اختیار خواهید داشت مثلاً : UINT برای Unsigned int ویا LPSTR برای *char و .. . انتخاب اینکه از کدامیک استفاده شود بستگی به خود شما دارد . اگر از استفاده از *char بجای LPSTR راحت هستید ، از همان استفاده کنید .

    فقط یک نکته ی کوچک را فراموش نکنید : پیشوند LP مخفف Long Pointer است . در win32 بخش Long زیاد بکار نمیره و منسوخ شده است .
    نکته ی دیگه اینکه حرف C که در ادامه ی LP میاد ، اول کلمه Constant به معنای ثابت هستش ؛ یعنی LPCSTR نشون دهنده ی یک اشاره گر به یک رشته ی ثابت است و LPSTR یک اشاره گر ثابت نیست و قابل تغییر است .

    پ.ن. فایل ضمیمه شامل :

    1- فرمت Pdf دوبخش اول 2 -سورس برنامه 3- فایل exe

    مربوط به همین بخش میباشد .
    فایل های ضمیمه فایل های ضمیمه

تاپیک های مشابه

  1. نوشتن GUI با Win32 یا MFC یا ...
    نوشته شده توسط lord_akinak در بخش برنامه نویسی با MFC و ++Visual C
    پاسخ: 10
    آخرین پست: سه شنبه 21 آذر 1396, 09:57 صبح
  2. Win32 هنوز نفس میکشه !
    نوشته شده توسط توسعه نویس در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 7
    آخرین پست: یک شنبه 25 آذر 1386, 04:41 صبح
  3. تشخیص win32
    نوشته شده توسط رهنورد2 در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 0
    آخرین پست: جمعه 12 آبان 1385, 17:52 عصر
  4. کامپایل کامل یک dot net app به win32 app
    نوشته شده توسط Mrs.Net در بخش C#‎‎
    پاسخ: 1
    آخرین پست: جمعه 07 مهر 1385, 15:54 عصر
  5. تبدیل یه کامپوننت VCL به Win32 DLL یا NET
    نوشته شده توسط sh در بخش کامپوننت های سایر شرکت ها، و توسعه کامپوننت
    پاسخ: 4
    آخرین پست: شنبه 05 فروردین 1385, 00:22 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •