ورود

View Full Version : سوال: API چیست ؟



sinashahab
جمعه 05 مهر 1387, 17:41 عصر
:تشویق::تشویق:

sohrab o
جمعه 05 مهر 1387, 17:56 عصر
I مخفف Application Programming Interface مي‌باشد كه به معناي رابط برنامه‌سازي كاربردي است.
نام API به توابعي اطلاق مي‌شود كه در فايلهاي مختلف ويندوز مانند Advapi32.dll ، User32dll ، Ole32.dll ، Kernel32.dll ، Winmm.dll ، Winspool.drr ، Gdi32.dll ، Mpr.dll ، Netapi32.dll ، Sheu32.dll ، Rasapi32.dll ، Version.dll ، Wsock32.dll ، Comdlg32.dll، وجود دارند.
ويندوز براي صدها كار مختلف خود از اين تابع‌ها استفاده مي‌كند و برنامه‌هاي كاربردي نيز به طور متعدد از اين توابع استفاده مي‌كنند. به عنوان مثال در زبان برنامه‌نويسي ويژوال بيسيك هر خط كد را كه تايپ مي‌‌كنيد و بعد برنامه را Run مي‌كنيد، توسط توابع API كنترل مي‌شوند. هنگامي كه دستور Form1.Print را براي نمايش يك پيغام بر روي فرم صادر مي‌كند، در واقع ويژوال بيسيك در پشت صحنه از تابع API، Textout جهت نمايش اين پيغام استفاده مي‌كند و يا هنگامي كه از توابع رسم بيضي استفاده مي‌كنيد، درحقيقت از تابع API، Elliptic استفاده مي‌شود.
و همچنين توابع ديگر، حركت ماوس، صفحه كليد، رنگها، دكمه‌ها، منوها و صدها عمليات ديگر.

علت استفاده از توابع API در برنامه‌نويسي
دلايل استفاده از توابع API در زبانهاي مختلف برنامه‌نويسي مي‌تواند اين باشد كه:
1. APIتوابع به دليل آنكه در فايلهاي dll هر سيستم عامل ويندوز مي‌باشد و در هر مكان مانند يكديگر مي‌باشند پس نيازي به ارائه آن فايل dll در نسخه برنامه نمي‌باشد و درنتيجه حجم نسخه كم مي‌شود و درضمن سنديت برنامه نيز بيشتر مي‌شود و مي‌توان گفت كه شما از منابع ويندوز به نحو احسن استفاده كرده‌ايد.
2. نسخه‌هاي ويندوز به طور مداوم تغيير مي كند ولي به دليل آنكه سازندگان هميشه حالتي را در نظر مي‌‌گيرند كه نسخه‌هاي قبلي را نيز پشتيباني كند. درنتيجه اگر شما برنامه‌اي را به كمك توابع API بنويسيد با تغیير نسخه ويندوز نيازي به تغيیر جدي در توابع API نمي‌باشد.
3. بيشتر زبانهاي برنامه‌نويسي (به‌خصوص زبانهاي تحت ويندوز كه خود به صورت پنهان از توابع API استفاده مي‌كنند، ممكن است به علت محدوديتهایي نتوانند تمام امكانات توابع را در اختيار قرا دهند. شما با دسترسي مستقيم به توابع مي‌توانيد از حداكثر قابليتهاي تابع استفاده كنيد.
4. در بعضي از زبانهاي برنامه‌نويسي براي آنكه بتوان يك حالت را بوجود آورد و يا كار مشخصي را انجام داد، بايد كدهای زيادي بنويسيم و يا در زمان خطاگيري مدت زيادي را صرف كنيم و به طور حتم كاربر استفاده‌كننده از برنامه شما نيز بايد زمان بيشتري را براي گرفتن جواب صرف كند. اين موارد ذكر شده هر كدام به نوبه خود مي‌توانند از محبوبيت، قدرتمند و خوانابودن برنامه بكاهند. ولي توابع API به دليل آنكه روتين شده و از قبل نوشته شده مي‌باشند پس فقط كافيست تابع را فراخواني كنيم و به آن ورودي دهيم و خروجي مورد نظر خود را دريافت كنيم.
5. همانطور كه در توابع اين كتاب نيز خواهيد ديد، بيشتر توابع كارهايي را انجام مي‌دهند كه زبانهاي برنامه‌نويسي قادر به انجام آن نمي‌باشند. به عنوان مثال به تابع SetlateradwindowAttributes مراجعه كنيد كه باعث مي‌‌شود يك پنجره (فرم و يا كنترلهاي داخل آن) و با يك رنگ مشخص در آنها به مقدار دلخواه به حالت شفاف و Transparent تبديل شوند. و يا توابع ديگر مانند StretchBlt , TransparentBlt , LokworkStation , TimGetTim , SHShutDownDialog و ...
6. و چندين علت ديگر....

Alisalari
شنبه 06 مهر 1387, 20:11 عصر
ممنون از توضيح مختصر و مفيدت

آيا مرجع كامل و مفيدي از توابع API و پارامترها و خروجي‌هاشون و طريقه بكارگيري‌شون و الباقي جزئيات وجود داره ؟ حالا از هر نوعي ، كتاب ، سي دي ، وب سايت و ...
و ترجيحا" فارسي . ممنون:لبخندساده:

Nima NT
شنبه 06 مهر 1387, 21:06 عصر
راهنمای جامع توابع API از انتشارات نص.