بانوثریا
21st April 2010, 10:53 AM
Apiمخفف 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. و چندین علت دیگر....
نام 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. و چندین علت دیگر....