PDA

View Full Version : سوال: کار با api در c



mrj242014
چهارشنبه 09 تیر 1400, 18:37 عصر
سلام خدمت همه دوستان.
بنده تازه شروع به api در c کردم و با windows.h شروع کردم. منتهی فکر نمی کردم api ها در برنامه نویسی c اصلا وجود داشته باشند.
153392
این عکس رو ببینید. من متوجه نمیشم... اولین سوالم اینه که چطوری یک متد دارای دو اسم هستتتت؟ هم WINAPI و هم WinMain ؟؟؟؟؟ دومین سوالم اینک اگر این متد از خود هدر windows.h هست چطوری میتونم توش بنویسم؟؟؟؟؟؟ مگ اینکه override شده باشه.... سوال سومم اینکه چطوری این متد به جای متد main عمل میکنه و کار متد main رو در دست گرفته؟؟؟؟؟؟؟؟
ببخشید بابت سوال های زیاد ولی به صورت کلی درک api در زبان C خیلی سخته. با تشکر:لبخند:

farhad_shiri_ex
پنج شنبه 10 تیر 1400, 11:22 صبح
منتهی فکر نمی کردم api ها در برنامه نویسی c اصلا وجود داشته باشند.
من درست متوجه منظورتون نشدم، ولی محض اطلاع کل کرنل ویندوز و تمام API های سطح کاربر و سطح کرنل فقط و فقط با زبان سی و برای بخش های حیاتی هم از اسمبلی استفاده شده است

چطوری یک متد دارای دو اسم هستتتت؟ هم WINAPI و هم WinMain ؟؟؟؟؟
اون WINAPI نام یا بخشی از تعریف یک تابع نیست، بلکه ماکرویی هست که بیان کننده این موضوع هست که تابع WinMain عضو کتابخانه های ویندوز هست که نوع Calling Convention ها وتعاریف دیگه ای را به متد اضافه میکنه.

اگر این متد از خود هدر windows.h هست چطوری میتونم توش بنویسم؟؟؟؟؟؟
عزیز جان! عضو کتابخانه های ویندوز هست ولی پیاده سازی تابع به عهده برنامه نویس هست، حالا نه دقیقا به صورت override که در زبانهای شی گرا داریم، به این تکنیک میگن Abstract Bases as Binary Interfaces کلا مفهوم پیچیده ای داره، تکنیک هایی هست که چگونه نوشتن API های ویندوز را توضیح میده

سوال سومم اینکه چطوری این متد به جای متد main عمل میکنه و کار متد main رو در دست گرفته؟؟؟؟؟؟؟؟
خیلی ساده است وقتی به کامپایلر ویژوال سی میگید که Binary که میخواهید از نوع Win32 هست، کامپایلر هم در زمان کامپایل سورس های شما دنبال این تابع میگرده تا نقطه شروع برنامه را تعریف کنه! البته خود همین تابع هم از داخل یک تابع دیگه در توابع سیستمی ویندوز فراخوانی میشه که گمی گیج کننده است :لبخند:

ببخشید بابت سوال های زیاد ولی به صورت کلی درک api در زبان C خیلی سخته. با تشکر:لبخند:
هیچ اشکالی نداره سوال خیلی هم خوبه! بله همینطور هست API های ویندوز هم پیچیده هستند وخیلی از بخش هاشون هم undocumented هست بنابراین کار کردن باهاشون خیلی زمانبر و خیلی هم حوصله و وقت و علاقه بسیار زیادی لازم داره

mrj242014
جمعه 11 تیر 1400, 21:58 عصر
ازتون بسیار متشکرم که با حوصله فراوان تمامی سوالاتم رو پاسخ دادید.
میشه یک مقاله یا کتاب یا سایت بم معرفی کنید؟؟؟؟ تا برنامه نویسی C رو کاملتر، همونطور که خودتون بلد هستید بنده نیز یاد بگیرم؟ ترجمه شده باشه که خیلی خوبه ولی زبان اصلیم باشه واقعا ازتون ممنون میشم.:لبخندساده:

farhad_shiri_ex
شنبه 12 تیر 1400, 08:04 صبح
ازتون بسیار متشکرم که با حوصله فراوان تمامی سوالاتم رو پاسخ دادید.
میشه یک مقاله یا کتاب یا سایت بم معرفی کنید؟؟؟؟ تا برنامه نویسی C رو کاملتر، همونطور که خودتون بلد هستید بنده نیز یاد بگیرم؟ ترجمه شده باشه که خیلی خوبه ولی زبان اصلیم باشه واقعا ازتون ممنون میشم.:لبخندساده:

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

1- C in a Nutshell by Peter Prinz, Tony Crawford
2- Programming with ANSI C++ by Trivedi, Bhushan
3- ++C How to Program. With an Introduction to C
4- The ANSI C Programming Language

mrj242014
شنبه 12 تیر 1400, 19:21 عصر
چندتا کتاب خوب برای برنامه نویسی با زبان سی

1- C in a Nutshell by Peter Prinz, Tony Crawford
2- Programming with ANSI C++‎ by Trivedi, Bhushan
3- ++C How to Program. With an Introduction to C
4- The ANSI C Programming Language



متشکرم ازتون. خیلی لطف کردید:قلب: