C++’da DLL Fonksiyonları Çağırma
DLL (Dinamik Bağlantı Kütüphanesi), diğer programlar tarafından kullanılabilen bir dizi işlevi ve veriyi içeren bir dosyadır. DLL’ler, kod tekrarını azaltmak ve programları daha modüler hale getirmek için kullanılır. C++’da, LoadLibrary()
ve GetProcAddress()
fonksiyonlarını kullanarak DLL fonksiyonlarını çağırabilirsiniz.
DLL Fonksiyonlarını Çağırma Adımları
- DLL’yi yükleyin.
- DLL’deki fonksiyonun adresini alın.
- Fonksiyonu çağırın.
- DLL’yi boşaltın.
DLL’yi Yükleme
DLL’yi yüklemek için LoadLibrary()
fonksiyonunu kullanabilirsiniz. Bu fonksiyon, DLL’nin yolunu bir parametre olarak alır ve DLL’yi belleğe yükler. Eğer DLL başarıyla yüklenirse, LoadLibrary()
fonksiyonu DLL’nin bir tutamacını döndürür. Bu tutamacı, DLL’deki fonksiyonların adreslerini almak ve fonksiyonları çağırmak için kullanabilirsiniz.
DLL’deki Fonksiyonun Adresini Alma
DLL’deki fonksiyonun adresini almak için GetProcAddress()
fonksiyonunu kullanabilirsiniz. Bu fonksiyon, DLL’nin tutamacını ve fonksiyonun adını parametre olarak alır ve fonksiyonun adresini döndürür.
Fonksiyonu Çağırma
Fonksiyonun adresini aldıktan sonra, fonksiyonu çağırmak için CallWindowProc()
fonksiyonunu kullanabilirsiniz. Bu fonksiyon, fonksiyonun adresini, fonksiyonun parametrelerini ve fonksiyonun geri dönüş değerini parametre olarak alır.
DLL’yi Boşaltma
DLL’yi kullanmayı bitirdiğinizde, DLL’yi boşaltmak için FreeLibrary()
fonksiyonunu kullanmalısınız. Bu fonksiyon, DLL’nin tutamacını bir parametre olarak alır ve DLL’yi bellekten boşaltır.
Örnek
Aşağıdaki örnek, user32.dll
DLL’sindeki MessageBox()
fonksiyonunu çağırmaktadır:
“`c++
include
int main()
{
// DLL’yi yükle
HMODULE hDll = LoadLibrary(“user32.dll”);
// Fonksiyonun adresini al
FARPROC pMessageBox = GetProcAddress(hDll, "MessageBox");
// Fonksiyonu çağır
MessageBox(NULL, "Merhaba, Dünya!", "Başlık", MB_OK);
// DLL'yi boşalt
FreeLibrary(hDll);
return 0;
}
“`
Dosya Bilgileri
- Adı: C++ DLL Fonksiyonları Çağırma
- Üretici: Microsoft
- Ücretsiz: Evet
- Uyumlu İşletim Sistemleri: Windows
- Dosya Boyutu: 10 KB
İndirme Linki: