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 Aplikasi Di Qlik Sense

Salah satu kelebihan Qlik Sense dari software BI lainnya terletak pada penggunaannya yang begitu intuitif sehingga memberikan pengalaman pengguna yang mudah, menyenangkan, dan yang paling penting, fitur-fitur dalam Qlik Sense tersebut mudah dipelajari sehingga Anda akan relatif cepat menguasainya dan Anda dapat lebih fokus pada apa yang ingin Anda buat daripada memikirkan bagaimana cara membuatnya. Seperti yang telah saya jelaskan pada artikel sebelumnya, aplikasi Qlik Sense merupakan sebuah file yang berekstensi qvf . Di dalam aplikasi Qlik Sense terdiri dari sejumlah Sheet atau lembar kerja, di mana dalam sheet tersebut Anda membuat visualisasi data Anda. Anda dapat membuat lebih dari satu sheet dalam sebuah aplikasi Qlik Sense Anda, dan antar sheet akan saling terhubung satu sama lain. Membuat aplikasi di Qlik Sense begitu mudah dan intuitif. berikut langkah-langkahnya: Jalankan Qlik Sense. Setiap Qlik Sense dijalankan pertama kali akan menampilkan popup window selamat da

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.