DLL dan Implementasinya

Pemrograman DLL yang singkatannya ialah Dynamic Link Library, bagi penulis sendiri merupakan salah satu keajaiban dari pemrograman disamping pemrograman COM. Walaupun penulis sendiri belum banyak mempraktekkan dari DLL ini tapi penulis yakin setelah kalian mempraktekkannya mungkin akan lebih memahami prinsipnya.

Penulis dalam hal ini menggunakan compiler C/C++ yang bernama "BloodShed Dev-Cpp" under Windows yang dapat di download gratis di Bloodshed. Alasannya "keren namanya" ^_^. Oke, kita lanjut aja. Berikut adalah contoh source code dan sedikit penjelasan untuk pemrograman DLLnya.

/* Syntax dll.h */
/* Penjelasan : template ini sudah bawaan dari BloodShed */
#ifndef _DLL_H_
#define _DLL_H_

#if BUILDING_DLL
# define DLLIMPORT __declspec (dllexport)
#else /* Not BUILDING_DLL */
# define DLLIMPORT __declspec (dllimport)
#endif /* Not BUILDING_DLL */

/* Fungsi DLL yang akan kita import */
class DLLIMPORT DllClass
{
public:
DllClass();
virtual ~DllClass(void);

private:

};


#endif /* _DLL_H_ */

----- C U T H E R E ---------------------

/* Syntax dllmain.cpp */
/* Replace "dll.h" with the name of your header */
/* Penjelasan : template ini sudah bawaan dari BloodShed */
#include "dll.h"
#include

// DLL yang akan diimport
DllClass::DllClass()
{

}


DllClass::~DllClass ()
{

}


BOOL APIENTRY DllMain (HINSTANCE hInst,
DWORD reason,
LPVOID reserved)
{
switch (reason)
{
case DLL_PROCESS_ATTACH:
/* Tempat definisi global variabel,
alokasi memori dan lain-lain */
break;

case DLL_PROCESS_DETACH:
/* Tempat free-ing memory dan hal-hal
lain yang telah dialokasikan di atas
*/
break;

case DLL_THREAD_ATTACH:
break;

case DLL_THREAD_DETACH:
break;
}

/* Returns TRUE on success, FALSE on failure */
return TRUE;
}

// Just testing our friendly DLL ^_^
int WINAPI TesOurWord()
{
// Put whatever u want
MessageBox(NULL,"Met lebaran","Function DLL",MB_OK |
MB_ICONEXCLAMATION);

return 1;
}

------- C U T H E R E --------------------------------------

/* Syntax main.cpp */
#include
#include
int main()
{
HINSTANCE hDLL;

hDLL = LoadLibrary("An-nur.dll"); /* Kita panggil DLL nya */
if(!hDLL)
return 0;
TesOurWord(); /* Kita panggil Fungsi dari DLL */
FreeLibrary(hDLL); /* Kalian mestinya tahu apa arti ini */
return 0;
}

Selama kita mengetahui fungsi yang ada dalam DLL tersebut maka kita akan dapat memanggilnya, tidak peduli apakah itu dibuat dengan C atau Pascal. Yang jadi masalah ialah setelah DLL telah terkompile dan menjadi sebuah file misalkan 'An-nur.dll' maka kita tidak bisa membukanya. Kecuali dengan program bawaan dari Windows NT 4 yakni QuickView. Disitu kita dapat melihat fungsi-fungsi apa saja yang dapat kita panggil dari DLL yang telah terkompile.

Sedikit penjelasan ini semoga dapat berguna. Silakan ditambahkan kekurangannya.
Selamat belajar....
These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • Furl
  • Reddit
  • Spurl
  • StumbleUpon
  • Technorati

Leave a comment

Diharapka Memberikan Informasi Dan Feedback Yang sekiranya pantas Untuk Dibaca Ok .Kritikan Diterima Dengan Senang Hati....