VB'de
API Tanımı
VB'de API'ler iki şekilde tanımlanabilir. Fonksiyon veya altprogram olarak. Fonksiyon olarak tanımlanan API'lerden geriye bir değer dönerken, altprogram olarak tanımlananlardan bir değer geri dönmez.
Alt program olarak API tanımı:
Private/Public Declare Sub isim Lib "libname" [([parametreler])]
Fonksiyon program olarak API tanımı:
Private/Public Declare Function isim Lib libname [([parametreler])] [As tip]
Burada isim fonksiyonun ismidir ve programda API bu isimle çağrılır. Libname kullanılan kütüphanenin ismi, parametreler; fonksiyona giren parametreler, As tip; fonksiyondan dönen değerin tipidir.
API'nin tanımlanacağı yer formun veya modülün General-Declerations kısmıdır. API'yi bir formun decleration kısmında tanımlarsanız API'yi yalnız o formun altprogramlarından çağırabilirsiniz. Bir modülde tanımlarsanız programınızın her yerinde kullanabilirsiniz.
API'yi doğru olarak tanımladığınız halde VB, ilgili dosyada böyle bir API bulunmadığını söylüyorsa veya API ile aynı isme sahip bir VB komutu var ise bu durumda Alias isimleri kullanmanız gerekir.
Private/Public Declare Function/Sub isim Lib libname Alias "isim" [([parametreler])] [As tip]
API'yi doğru olarak tanımladığınız halde VB, ilgili dosyada böyle bir API bulunmadığını söylüyorsa API isminin sonuna A ekleyerek Alias ismi olarak vermeniz gerekir. Bunun sebebi Windows işletim sisitemi farklı dilleri desteklemektedir. ANSI karakter setini destekleyen ülkler için sonuna A harfi, UniCode veya iki karekter genişliğini kullanan ülke seti için ise sonuna W harfi eklemeniz gerekir.
API tanımı yaparken kullanacağınız tiplerin isimlerini ise C'den VB'ye çevirmeniz gerekir. Genel olarak tip karşılıkları şöyledir.
|
C
|
Visual Basic
|
|
atom
|
ByVal değişken AS integer
|
|
bool
|
ByVal değişken As Long
|
|
byte
|
ByVal değişken As Byte
|
|
char
|
ByVal değişken As Byte
|
|
colorref
|
ByVal değişken As Long
|
|
dword
|
ByVal değişken As Long
|
|
hwnd,hdc,hmenu vb
|
ByVal değişken As Long
|
|
int,uint
|
ByVal değişken As Long
|
|
long
|
ByVal değişken As Long
|
|
lparam
|
ByVal değişken As Long
|
|
lpdword
|
değişken As Long
|
|
lpint,lpuint
|
değişken As Long
|
|
Iprect
|
değişken As type
|
|
Ipstr,Ipcstr
|
ByVal değişken As String
|
|
Ipvoid
|
değişken As Any
|
|
lpword
|
değişken As Integer
|
|
lresult
|
ByVal değişken As Long
|
|
null
|
değişken As Any veya ByVal değişken As
Long
|
|
short
|
ByVal değişken As Integer
|
|
void
|
Sub procedure
|
|
word
|
ByVal değişken As Integer
|
|
wparam
|
ByVal değişken As Long
|
|
16 bit
|
ByVal değişken As Integer
|
|
32 bit
|
ByVal değişken As Long
|
|
float
|
ByVal değişken As Single
|
|
double
|
ByVal değişken As Double
|
Parametrelerden biri iki farklı tipte değer alabiliyorsa bunu As Any olarak tanımlamanız gerekir. Hangi parametrenin Any olarak tanımlanması gerektiğine ancak dosyadaki bilgileri okuyarak anlayabilirsiniz. Örneğin bir parametre hem string içerebiliyor ve hemde Null içerebiliyorsa bu parametre Any olarak tanımlanmalıdır.
Yaptıkları işlere göre API'lerin bulundukları dosyalar ise şunlardır :
|
DLL
|
Fonksiyonları
|
|
Advapi32.dll
|
Şifre ve Kayıt dosyası işlemleri gibi
gelişmiş bir çok API'ler
|
|
Comdlg32.dll
|
Diyalog pencereleri ile ilgili API'ler
|
|
Gdi32.dll
|
Grafik API'leri
|
|
Kernel32.dll
|
Çekirdek Windows API'leri
|
|
Lz32.dll
|
32 bit skıştırma API'leri
|
|
Mpr.dll
|
Multiple Provider Router API'leri
|
|
Netapi32.dll
|
32-bit Network API'leri
|
|
Shell32.dll
|
32-bit Shell API'leri
|
|
User32.dll
|
Kullanıcı arabirimi API'leri
|
|
Version.dll
|
Versiyon işlemleri API'leri
|
|
Winmm.dll
|
Multimedia API'leri
|
|
Winspool.drv
|
Print spooler API'leri
|
0 yorum:
Yorum Gönder