لینک دانلود و خرید پایین توضیحات
فرمت فایل word و قابل ویرایش و پرینت
تعداد صفحات: 15
توضیحی مختصر درباره API
قلب ویندوز یعنی چیزی که اساس سیستم عامل ویندوز است، چیزی نیست بجز توابع API .
API مخفف کلمه Aplication programming interface میباشد که به معنای رابط برنامه سازی کاربردی است.
که از آن به نام های Aplication programming Interface و Application Programmers Interface نیز یاد شده است.
نام API به توابعی اطلاق میشود که در فایل های مختلف ویندوز مانند advapi32.DLL و userDLL32.DLL و ole32.DLL و ... وجود دارند.
هر کاری که در ویندوز روی می دهد و هر اتفاقی که می افتد با استفاده از این توابع صورت می گیرد.
در حقیقت نوشتن برنامه برای ویندوز از صدا کردن توابع API تشکیل می شود. API بخشی از خود ویندوز است. لذا تمام برنامهای کاربردی ویندوز به همان توابعی دسترسی دارند که برنامه های دیگر دارند.
در محیط چند وظیفه ای ویندوز ضروری است که تمام برنامه ها در روش تعریف شده دقیق عمل کنند . با استفاده از توابع API که در تمامی برنامه های کاربردی استفاده می شود این سازگاری بوجود می آید.
شاید شما ندانسته تا حالا بارها با API کار کرده باشید. وقتی شما در محیط یک زبان برنامه نویسی مثل Delphi یا Visual Basic یا هر محیط دیگری پروژه جدیدی را آغاز می کنید و فرم اولیه را روی صفحه آورده و آماده طراحی می شوید در واقع استفاده از توابع API را آغاز کرده اید . در حقیقت در همان لحظه تابع Create Window فراخوانده شده است و فرم مزبور در مقابل شما قرار می گیرد که خود این تابع یکی از توابع API است.
از نظر برنامه نویس API شامل یک سری زیر برنامه ی آماده و کاملا سالم می باشد که در اختیار برنامه نویسان محیط ویندوز قرار می گیرد.
مشخصات توابع API
اگر بخواهیم توابع API را تقسیم بندی کنیم به دو دسته 16 بیتی و 32 بیتی تبدیل میشوند که دسته 16 بیتی دارای 730 تابع و دسته 32 بیتی دارای 6500 تابع میباشد.این روالها درون فایلهایی وجود دارند که در پوشه های Windows و Windows\System ذخیره شده اند.
در توابع API مانند هر زبان برنامه نویسی متغیر های ورودی و خروجی وجود دارد. این متغیر ها میتوانند از نوع long , integer , string , byte و ... باشند.
برخی از این توابع میتوانند فقط مقدار ثابت تعریف شده ای را بگیرند.
در تعدادی از توابع متغیر های ورودی و خروجی یه یک ساختار TYPE اشاره دارند که فیلدهای این ساختار اطلاعات ورودی یا برگشتی تابع را در خود نگهداری میکنند.
توابع API در کجا قرار می گیرند؟
حتما این سوال برای شما پیش آمده که این توابع قدرتمند در کجا قرار دارند؟ یا اینکه این توابع کجا هستند که می توانند به طور اشتراکی در چند برنامه و حتی خود ویندوز مورد استفاده قرار گیرند؟ ابتدا باید مطالبی در مورد فایل های DLL بیاموزید.
DLL چیست؟
در حقیقت DLL ها هم مانند API ابزاری هستند که شما از آنها استفاده کرده اید ولی شاید نمی دانستید. اگر نگاهی به دایرکتوری system یا windows یا System32 بیندازید تعداد زیادی از این فایل های DLL می بینید!
Dynamic Linked Library (DLL): به معنای کتابخانه پیوندی پویا می باشد که می تواند شامل انواع داده یا کد باشد. درون DLL میتوان انواع داده ها همانند کد - تصویر - صوت و غیره را قرار داد.
فایلهای DLL در دسترس برنامه هایی که به زبان ویژوال بیسیک و زبانهای دیگری(که از DLL پشتیبانی می کنند) نوشته شده اند می باشد.
نکته جالب فایل های DLL خاصیت مستقل از زبان برنامه نویسی این فایل ها می باشد. یعنی اگر DLL با استفاده از Delphi ایجاد شده باشد می تواند Visual Basic یا Visual C++ از آن استفاده کرد.
نکته دیگر DLL ها صرفه جویی در مصرف حافظه می باشد که به همین دلیل نام Dynamic را به همراه خود دارند. در واقع هر قسمت از DLL که فراخوانی می شود همان قسمت به حافظه بار می شود و در صورت عدم نیاز هم از حافظه خارج می شود.
در واقع دلایل استفاده از DLL را موارد زیر را می توان نام برد:
توانایی اشتراکی کردن کد بین چند برنامه و حتی خود ویندوز
استفاده مجدد از کد های نوشته شده.
استفاده بهینه از منابع ویندوز و منابع سیستم.
جدا کردن کد های مختلف از هم.
لازم به ذکر است که DLL ها را می توان به زبان هایی مانند Delphi و Visual C++ تولید کرد.
حالا می توانیم به سوال قبلی پاسخ دهیم . API درون فایلهایی وجود دارند که در پوشه های Windows و Windows\System ذخیره شده اند. هنگام نصب ویندوز فایلهای DLL نیز ذخیره می شوند ، پس به طور اتوماتیک به این کتابخانه ها دسترسی دارید.
مهمترین DLL ها که بیشترین API ها را در خود جا داده اند عبارتند از Kernel32.DLL و User32.DLL و Shell32.DLL و ... البته DLL های دیگری هم وجود دارند!
اکثر فایلهای DLL پسوند .DLL یا .EXE دارند.هربرنامه ای که می نویسید به این فایلها دسترسی دارد.این فایلهای DLL در ویرایش های قدیمی تر ویندوز (قبل از 95) هم وجود داشتند ، منتها این فایلها شماره 32 را (که نشان دهنده سازگار 32 بیتی است)در نام خود نداشتند.ویرایشهای قبل از ویندوز 95 سیستمهای 16 بیتی بودند ، بدین معنی که انتقال اطلاعات با نرخ 16 بیت یا دو بایت انجام می شد.برنامه نویسی در محیط های 32 بیتی ، انعطاف بیشتر ، سرعت زیادتر و کارایی بالاتر را در مقایسه با یک محیط 16 بیتی قدیمی دارد.
سه فایل که عمدتا استفاده می شوند عبارتند از:
Usre32.DLL: شامل توابعی است که محیط ویندوز و واسط کاربر مثل مکان نماها ، منوها و پنجره ها را کنترل می کند .
Gdi32.DLL: شامل توابعی است که خروجی برنامه به صفحه تصویر و ابزارهای دیگر را کنترل می کنند.
Kernel32.DLL: شامل توابعی است که سخت افزار و واسط نرم افزار داخلی ویندوز را کنترل می کنند.اکثر روالهای مربوط به حافظه ، فایل و دایرکتوری درون Kernel32.DLL قرار دارند.
توجه: ویندوز یک سیستم عامل است که از چند لایه تشکیل شده است.شروع این لایه ها با واسط گرافیکی کاربر یا GUI(Grapical User Interface) است که کاربر می بیند و ختم آنها با نزدیک ترین لایه به سخت افزار است که جریان داده ها بین برنامه و سخت افزار را کنترل می کند. این پایین ترین سطح سیستم عامل را هسته اصلی (Kernel) می گویند. بنابراین نام Kernel32.DLL مربوط به کتابخانه ای است که تعدادی روال بر مبنای هسته اصلی را دارد.
این سه فایل بیشتر روالها یا توابع API را نگه می دارند.با یک نگاه کوتاه به پوشه های Windows و Windows \ system چند کتابخانه پیوند دینامیکی دیگر را نیز می بینید مثل COMDLG.DLL,MAPI32.DLL,NETAPI32.DLLوWINMM.DLL . همچنانکه مایکروسافت قابلیتهایی را به سیستم عامل اضافه می کند، فایلهای جدید DLL هم ظاهر می شوند.
فایلهای DLL فقط قسمتی از ویندوز نمی باشند . وقتی یک برنامه جدید را به سیستم خودتان اضافه می کنید.این برنامهDLL خاص خودش را فراهم می کند.بنابراین در طول زمان تعداد زیادی فایل DLL روی سیستم خودتان خواهید داشت.
ماهیت فایلهای DLL:
اصطلاح پیوند دینامیکی معانی خاصی برای برنامه نویسان دارد.وقتی گفته میشود که یک روال با یک برنامه پیوند دینامیکی دارد بدین معناست که این روال(سابروتین یا تابع) تا قبل از ترجمه برنامه به آن متصل نمی شود .این تابع فقط در زمان اجرا در دسترس برنامه می باشد.توابعی که درون پنجره کد می نویسید دارای پیوند استاتیکی میباشند،یعنی هر وقت برنامه را ترجمه می کنید این توابع با بقیه کد اصلی ترکیب می شوند.اما فایلهای DLL برنامه ترکیب نمی شوند. برنامه شما به این روالها در زمان اجرا دسترسی دارداما فایل EXE برنامه شامل روالهای واقعی DLL نمی باشد.
این توابع زمانی با ارزش است که می خواهید توابع را به عنوان کتابخانه های پیوند دینامیکی استفاده کنید، زیرا کتابخانه یا توابعی که برنامه شما احضار می کند هیچوقت قسمتی از برنامه شما نیستند.توابع API اندازه فایلهای برنامه شما را زیاد نمی کنند.حین اجرای برنامه این روالها در مواقع ضروری بار می شوند ، در ادامه چنانچه دیگر نیازی به آنها نباشد سیستم عامل ویندوز می تواند منابع را آزاد کندتا حافظه و وقت CPU صرف روالهای جدید شود.
اما مزیت عمده پیوند دینامیکی این نیست که موجب افزایش راندمان منابع می گردند.چنانچه ویندوز تغییر کند این فایلهای DLL با ویرایشهای جدید DLL باید جایگزین شوند.بنابراین برنامه شما قادر است تا از قابلیتهای جدید ویندوز استفاده کند بدون آنکه مجبور باشید همه برنامه هایی را که از API ویندوز استفاده میکنند مجددا ترجمه کنید.به عنوان مثال در ویندوز 95 ظاهر پنجره ها تغییر کرد.شمایلهای موجود در گوشه بالا و سمت راست یک پنجره نسبت به ویندوز 11.3 تفاوت دارند.اما هر برنامه ویژوال بیسیک که برای نمایش پنجره یک تابع API ویندوز را احضار می کند در همه محیطهای ویندوز اینگونه عمل می کند. یعنی این برنامه وقتی در محیط ویندوز11.3 اجرا میشود شمایلهای قدیمی
تحقیق درباره توضیحی مختصر درباره API