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

نام تاپیک: نوشتن برنامه در ویندوز و اجرای ان در لینوکس

Hybrid View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1

    نقل قول: نوشتن برنامه در ویندوز و اجرای ان در لینوکس

    بله به تمام آن توابعی که از dll های ویندوز استفاده می کنیم API می گوییم(دقیق تر windows API).
    برای یک مثال که خودتان می شناسید: تابع GetKeyboardState برای دریافت حالت کلید های کیبرد یک API هست، داخل user32.dll است و هدر آن نیز در Windows.h قرار دارد. import library آن نیز User32.lib هست که باید در کامپایر در linker تعریف شود (این مورد در VC به طور پیش فرض تعریف شده است، برای سایر موارد باید دستی اضافه کنیم)
    تابع SetCursor برای کار باموس ، یا Rectangle برای گرافیک نیز API هستند، حال در dll های مختلف مثلا در Gdi32.lib که با نام GDI شناخته می شود.
    پس نیاز به مثال مجدد نیست، همه توابعی که در آن مثالی که لینکش را گذاشتم دیدید و نمی شناختید یا در windoes.h قرار داشتند همه API بودند (یا کلا بخشی از SDK ویندوز).

    API ها را نمی توان به Interrupt تعبیر کرد، فقط یکسری توابع برای انجام کارها هست، مثلا برای پیاده سازی توابع کار با کیبرد از ++C (و شاید در صورت نیاز اسمبلی) استفاده شود برای خواندن پورت های ورودی .

    کلا حتی اگر شما یک سخت افزار بسازید و برای آن یکسری SDK یا توابعی منشر کنید که با فرخوانی آن ها بتوان با سخت افزارتان ارتباط برقرار کرد ( مثلا روی آن چیزی بنویسد، بوق بزند و ... ) در اصطلاح به آن ها API می گوییم.

    در مورد CLR هم بله درست است.
    JIT در شکل نیامده ولی کدها توسط همان JIT ترجمه می شوند

    راستی توی برنامه نویسی win32 همه چیز رو باید خود برنامه نویس بسازه؟ اینجوری که من توی اون برنامه گرافیکی متوجه شدم، حتی یه دکمه هم وجود نداره
    خیر همه چیز وجود دارد.(فراموش نکنید پایه تمامی قسمت های ویندوز win32 است)
    من برای اینکه کاربران تازه کار درگیر control های پیشرفته نشوند حرفی از آن ها نزدم و فقط محیطی برای رسم اشکال فراهم کردم.

    این مثال را ببینید(با عکس است):
    http://www.winprog.org/tutorial/controls.html

    شما مثل سایر شیوه ها و زبان های برنامه نویسی محیط visual دارید تا طراحی دیالوگ کنید، اما به راحتی آن ها یا .NET نیست. (و تعداد کنترل ها نیز به اندازه و وسعت .NET نیست)
    مثلا در win32 این طور نیست که بر روی یک button کلیک کنید تا اتوماتیک رویدادی را بسازد و راحت داخلش کد بنویسید. شما باید ID آن button را کپی کنید و سپس در بخش مربوط به پیام ها خودتان دستی بخشی برای فراخوانی آماده کنید، (یعنی ID آن را در switch-case اضافه کنید)
    در MFC این سختی کمتر شده و اتومات سازی مانند سایز زبان ها وجود دارد و کمتر نیاز به نوشتن دستی هست.

    برای خواندن یا نوشتن اطلاعات در کنترل ها نیز، با یک = نمی توانید داده ها یا رشته ها را بخوانید. باید دستی پیامی به شکل زیر بفرستید با ID همان کنترل تا در متغیر مورد نظر داده کپی شود، مثلا برای اضافه کردن رشته به listbox:

    int index = SendDlgItemMessage(hwnd, IDC_LIST, LB_ADDSTRING, 0, (LPARAM)"Hi there!");
    زیاد تعجب نکنید، اکثر برنامه های معروف که در منزل استفاده می کنید در نسخه ویندوز خود، اگر از MFC کمک نگیرند، مستقیم از طریق همین win32 برنامه خود را نوشته اند:
    3ds max ، Photoshop ، ...

  2. #2
    کاربر دائمی آواتار fazel-d
    تاریخ عضویت
    آذر 1386
    محل زندگی
    بورکینافاسو
    پست
    399

    نقل قول: نوشتن برنامه در ویندوز و اجرای ان در لینوکس

    اصلا آیا میشه VS رو تو لینوکس run کرد؟

  3. #3

    نقل قول: نوشتن برنامه در ویندوز و اجرای ان در لینوکس

    نقل قول نوشته شده توسط fazel-d مشاهده تاپیک
    اصلا آیا میشه VS رو تو لینوکس run کرد؟
    این سوال در همین تاپیک پرسیده شد! ای کاش ابتدا مطالعه می کردید...

    خیر، ++VC مخصوص ویندوز هست.
    شما می توانید کدهای ++C/C را به صورت استاندارد بنویسید در ویندوز با VC کامپایل کنید و در لینوکس با gcc و در MAC OS با Xcode

برچسب های این تاپیک

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

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