Skip to main content

Mengenal Dynamic Link Library Di Delphi


Dynamic Link Library (DLL) pada dasarnya merupakan sebuah file biner yang berisi kumpulan rutin-rutin siap pakai yang dapat dipanggil dari file executable atau file DLL lain.
Pada umumnya file DLL memiliki ekstensi .dll, meski hal ini bukan merupakan suatu keharusan. Beberapa jenis file DLL memiliki ekstensi khusus, misalnya .drv (untuk driver), .fon (untuk font) dan lainnya. DLL bekerja dengan basis objek, namun belum mendukung OOP (Object Oriented Programming).
Keuntungan penggunaan DLL antara lain:
  • Beberapa aplikasi dapat menggunakan file DLL yang sama. Hal ini tentu menguntungkan, karena dapat mengurangi ukuran file program dan penggunaan memori.
  • Suatu aplikasi dapat diupgrade hanya dengan mengganti file DLL tertentu tanpa harus mengganti atau meng-compile ulang seluruh file executable-nya. Hal ini bisa dilakukan jika perubahan terjadi hanya pada definisi fungsi, sedangkan parameter atau nilai baliknya tetap.
  • DLL dapat digunakan secara dinamis, maksudnya DLL dipanggil atau dimuat ke memori hanya pada saat diperlukan saja. Hal ini dapat menghemat pengunaan memori.
  • File DLL dapat dipanggil oleh beberapa kompiler yang berbeda. Misalnya file DLL yang di-compile dengan C++ dapat dipanggil oleh aplikasi yang dibuat oleh Delphi, atau sebaliknya.

Membuat File DLL


Untuk membuat file DLL baru, ikuti langkah-langkah berikut ini.
  • Buat project baru dengan memilih menu File | New | Others. Pada window New Items pilih item Dynamic-Link Library. Kemudian simpan project. Nama project akan menjadi nama DLL yang dihasilkan.
  • Jka ingin menambahkan unit baru pada project DLL, buat unit baru dari menu File | New | Unit.
  • Ketik listing program pada unit yang dibuat.
  • Pada source project (Anda dapat mengaksesnya melalui menu Project | View Source), tuliskan nama fungsi DLL yang akan diekspor.
  • Pilih menu Project | Build All.
Program berikut ini mendemonstrasikan pembuatan DLL sederhana. Unit baru yang dibuat, disimpan dengan nama UExDllSource.pas, sedangkan project disimpan dengan nama ExampleDll.dpr
Project ini hanya memiliki satu buah fungsi yang akan diekspor, yaitu FungsiDLL(InputText: PChar; var JumKar: Integer): PChar. Fungsi ini memiliki tugas menghitung jumlah karakter text input. Teks baru yang terbentuk digunakan sebagai nilai balik.
Berikut adalah kode dari UExDllSource.pas.

unit UExDllSource;

interface

uses
  SysUtils;

function FungsiDLL(InputText: PChar; var JumKar: Integer): PChar; export;

implementation

function FungsiDLL(InputText: PChar; var JumKar: Integer): PChar;
var
  temp: String;
begin
  JumKar:= StrLen(InputText); // hitung jumlah karakter
  temp:= String(InputText); // mengubah PChar -> String
  temp:= 'Text yang Anda masukkan: ' + temp;
  Result:= PChar(temp);
end;

end.

perhatikan prototype fungsi FungsiDLL di atas. Pada akhir deklarasi ditambahkan kata kunci export. Ini menunjukkan bahwa fungsi tersebut dapat dipanggil dari file lain.
Kode lengkap ExampleDLL.dpr kurang lebih sebagai berikut.

library ExampleDLL;

uses
  SysUtils,
  Classes,
  UExDllSource in 'UExDllSource.pas';

exports
  FungsiDLL name 'FungsiDLL'; // fungsi yang dapat diakses
                              // dari luar file DLL
{$R *.res}

begin
end.

Fungsi-fungsi yang akan diekspor dituliskan setelah kata kunci exports. Perhatikan, nama fungsi yang diekspor bersifat case sensitive. Ini berarti, jika Anda memanggil FUNGSIDLL daripada FungsiDLL dari aplikasi lain, akan terjadi kegagalan dan sistem melaporkan bahwa fungsi tersebut tidak ditemukan.
Hal lain yang perlu diperhatikan adalah, jika Anda menggunakan string sebagai parameter atau nilai balik fungsi yang diekspor, Anda harus menambahkan unit ShareMem pada klausa uses. ShareMem merupakan antarmuka Borland Memory Managger BorlndMM.dll. Jadi, jika Anda menggunakan ShareMem, pastikan pula BorlndMM.dll disertakan pada saat mendistribusikan aplikasi.
Untuk menghindari hal di atas, sebaiknya string diganti dengan tipe PChar (null terminated string) atau ShortString.
ShortString pada dasarnya sama denganarray[0..255] of char. Meskipun pada Delphi terdapat tipe AnsiString dan ShortString, namun tipe PChar tetap dibutuhkan. Penggunaan PChar cukup beralasan, karena tipe ini merupakan tipe standar dalam C/C++, serta digunakan dalam Windows API.

Build DLL - embosska.blogspot.com
Tahap terakhir dari pembuatan file DLL yaitu proses compile dan build. Pada Menu aplikasi, pilih Project | Compile ExampleDLL. Jika tidak terhenti dan menunjukkan pesan error, maka proses compiling berhasil. Kemudian dilanjutkan dengan proses build. Pilih menu Project | Build ExampleDLL dan file DLL Anda pun terbentuk. Selamat! :)

Comments

Popular posts from this blog

Pengenalan Dasar Qlik Sense

Dewasa ini konsep penyajian data informasi banyak mengalami perubahan yang menggembirakan. Jika dahulu, konsep penyajian data adalah dalam bentuk larik-larik data berisi teks dan biasanya tidak dinamis dan tidak interaktif. Sekarang, seiring dengan pertumbuhan data informasi yang masif, dibutuhkan sebuah teknik penyajian data yang semakin sederhana namun memuat banyak informasi, tersaji secara dinamis dan interaktif, menjadikan pekerjaan analisis data lebih menyenangkan dari sebelumnya. Di sinilah konsep Business Intelligence berawal. Idenya adalah, saya sajikan kepada Anda begitu banyak informasi yang tentu saja yang Anda butuhkan, dalam format visual yang bersih, informatif, dinamis, dan interaktif dalam layar komputer Anda. Qlik Sense merupakan sebuah Aplikasi Reporting untuk keperluan Bussiness Intelligence. Merupakan pengembangan dari aplikasi BI pendahulunya yaitu QlikView . Qlik Sense pada dasarnya sama dengan QlikView . Hanya saja Qlik Sense lebih menekankan pada ide

Cara Membuat Dan Menggunakan Unit Di Delphi

Artikel ini adalah lanjutan dari artikel Bekerja Dengan Unit Di Delphi .  Untuk membuat unit baru, pilih menu File | New | Unit . Listing di bawah ini merupakan suatu contoh unit yang dibuat Delphi. unit Unit2; interface implementation end.

Cara Menggunakan DLL Di Delphi

Pada artikel sebelumnya kita telah membahas apa itu Dynamic Link Library dan bagaimana cara membuatnya di Delphi (baca: Mengenal Dynamic Link Library Di Delphi ). Kini Anda telah mengerti bagaimana cara membuat file DLL Anda sendiri. Permasalahan yang paling mendasar sekarang, mungkin adalah bagaimana cara menggunakan file DLL yang telah Anda buat pada aplikasi Anda dan mendapatkan keuntungan darinya. Terdapat dua cara penggunaan DLL, yakni Load-time dynamic lingking dan Run-time dynamic linking . Setelah membaca dan menerapkan contoh aplikasi sederhana dalam artikel ini, Anda akan dapat memahami perbedaan di antara kedua metode sehingga Anda dapat menentukan kapan menggunakan metode tersebut dan sebaliknya. Load-time Dynamic Linking (Cara Implisit) Jika Anda menggunakan cara ini, file DLL dimuat pada saat aplikasi dijalankan. Untuk melakukannya, Anda tinggal menulis prototype fungsi yang digunakan dengan tambahan pengarah eksternal. Sebagai contoh: function FungsiDLL(In