توابع API یعنی چی؟
واژه API مخفف شده سه كلمه Application Programming Interfaceمیباشدآن یك رابط نرم افزار است كه در برنامه های دیگر استفاده میگردد. همانند صفحه كلید ماشین حساب كه رابط میان كلید و عدد نمایش داده شده میباشد.یك APIرابط نرم افزاری سیستم های عامل میباشدAPI یك سیستم عامل دلیلی بنیادی و اساسی میباشد برای عدم هماهنگی سیستمهای عامل با هم .
برای مثال یك قطعه در یك سیستمی بر پایه مكینتاش نمیتواند در ویندوز اجرا شود (البته بدون وجود شبیه ساز آن) زیرا سیستم عامل مكینتاش و ویندوز API های متفاوتی دارند.
نحوه تعریف تابع :
قبل از اینكه بتوانید یك تابع API را در ویژوال بیسیك استفاده نمایید باید آن را نخست تعریف ومشخص نمایید. برای تعریف تابع باید به ویژوال بیسیك بگویید كه چگونه میتواند آن را پیدا نماید. برای تعریف نخست نام تابع سپس نام فایل DLL حامل تابع و سپس پارامترهای موردنیاز آن به همراه نوع آنها و نوع مقدار برگشتی(در صورت موجود بودن). با این اطلاعات ویژوال بیسیك میداند كه تابع API را از كجا پیدا نماید البته این رویه منحصر به توابع API نیست و هر تابعی كه درون یك DLL فایل قراردارد نیز باید همانند روش بالا تعریف گردد.
در زیر روش تعریف تابع نشان داده شده است. دستور Declare برای تعریف تابع استفاده میشود ، این دستور میتواند داخل یك ماجول یا یك فرم بكار گرفته شود اگر داخل فرم استفاده شود باید پیشوند Private برای آن بكار گرفته شود و اگر داخل یك ماجول بكار رود میتواند با یكی از دو پیشوند Public و یا Private مورد استفاده قرار گیرد ، توجه نمایید استفاده از واژه Public باعث میگردد تابع در بقیه قسمتهای برنامه نیز قابل استفاده باشد ولی واژه Private باعث میگردد تابع فقط در همان ماجولی كه تعریف شده قابل استفاده باشد.
کد:
[{Public | Private}] Declare Function function name Lib "DLL_filename" [Alias "function alias"] (argument list) As data type
[{Public | Private}]
می توانید یکی از دو عبارت بالا را نسبت به نیاز در تعریف تابع API خودتان به کار ببرید
اگر کمی با برنامه نویسی آشنا باشید با واژه میدان دیدScope و یا میدان عمل بیگانه نخواهید بود اگر تابع خود را در قسمت General برنامه تعریف کنید بایستی از کلمه کلیدی Private یعنی محلی استفاده کنید در این صورت از این تابع فقط در محلی که نوشته اید می توانید استفاده کنید و در سایر قسمت های برنامه نمی توانید از از آن تابع استفاده کنید و باید دوباره آن را در آن محل تعریف کنید که اصلا این نوع تعریف رو به جز در برنامه های بسیار ابتدایی پیشنهاد نمی کنم
نوع دوم استفاده از Public یا عمومی است که در آن ابتدا باید تابع را در یک ماژول دیگر تعریف کرد و سپس در سایر قسمت های برنامه و بدون محدودیت استفاده کرد
Declare Function
کلمه کلیدی است و حتما باید ردر تعریف تابع استفاده گردد
FunctionName
نام تابع API است این نام می تواند هرچیزی باشد و شما می توانید حتی از نام خودتان به جای این پارامتر استفاده کنید ولی هرگز نباید این پارامتر را خالی بگذارید و نوشتن آن الزامی است البته توصیه می کنم برای بالا رفتن خوانایی برنامه از نام اصلی تابع استفاده کنید زیرا در غیر این صورت می بایستی از قسمت Function Alias استفاده کنید
Lib "Library Name"
اصولا توابع API ویندوز در درون فایل های کتابخانه ای ویندوز(DLL) قراردارند و برای استفاده از این توابع می بایستی از درون کتابخانه مربوط به خود فراخوانی شود در این قسمت که نوشتن آن الزامی است شما باید نام کتابخانه ای را که تابع در درون آن قرار دارد را در درون کوتیشن بنویسید
کتابخانه های توابع در ویندوز مختلف هستند و از پر کاربرد ترین اونا می تونم به موارد زیر اشاره کنم
Kernel32.DLL
USER32.DLL
GDI32.DLL
WINMM.DLL
و ...
البته در نوشتن نام کتابخانه نوشتن پسوند .DLL اختیاری است
[Alias "function alias"]
در این قسمت که البته نوشتن اون اختیاریه در اکثر موارد باید نام کامل تابع رو تایپ کرد و در صورتی باید این قسمت رو حتما نوشت که نام تابع رو به دلخواه خودمون عوض کردیم ابته این بخش دارای کاربرد های دیگه ای هم هست که در انجا به اونا اشاره نمی کنم
(Argument list)
هر تابع API ویندوز مانند توابع داخلی ویژوال بیسیک می توان دارای چندین آرگومان باشد که این آرگومان ها بسته به نوع تابع متغیرند ، توابعی وجود دارند که شاید بیش از هفت آرگومان داشته باشند و توابعی هم وجود دارن که هیچ آرگومانی ندارند
As data type
اصولا هدف از فراخوانی تابع گرفتن خروجی از تابع است تمامی توابع API یک مقدار را برمی گردانند که برای معین نمودن نوع مقدار برگشتی از واژه کلیدی As و سپس نوع داده استفاده می کنیم که در اکثر توابع مقدار برگشتی از نوع Long و یا String خواهد بود