RSS

nice info computer,hacking,business, viruss,n many more

Rave's Blog

Pemrograman 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.... 

Salam, 
infidra 

Thanx to : - scut : sorry kelamaan, kapan kauw maki2 aku lagi 
- ftp_geo : Om, terima kasih atas nasehatnya 
- rollan : kita lom kenal lebih dekat 
....and all crew of Indohack yang lom aku kenal 

Sumber : - Tricks Of The Windows : Game Programming Gurus by SAMS Publishing 
                - Beberapa situs pemrograman 

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 komentar:

Posting Komentar