Tutorial Membuat dan Menggunakan file DLL Buatan Sendiri, bagian 2

Tutorial ini merupakan bagian kedua dari tutorial membuat file DLL sendiri dan menggunakannya. Bagian pertama tutorial ini ada di sini. Pada bagian kedua ini akan ditunjukkan cara menggunakan fungsi yang terdapat pada file DLL yang telah dibuat.

Prerequisite:
Memahami bahasa pemprograman C/C++
Mengikuti tutorial bagian pertama

Untuk lebih jelas mengenai bagaimana kita dapat membuat suatu aplikasi yang menggunakan DLL, dapat dilihat gambar di bawah ini

Gambaran Penggunaan DLL

Untuk mengkompilasi program yang akan menggunakan DLL, compiler harus mengetahui informasi mengenai library tersebut. Informasi ini terdapat dalam file .lib yang dihasilkan saat kompilasi project DLL. Kemudian, untuk dapat menjalankan program (.exe), dibutuhkan file .dll.

Berikut merupakan langkah-langkah membuat contoh program yang menggunakan file DLL yang telah kita buat sendiri:

1. Buat project baru dengan template “Win32 Console” dan ikuti Wizard-nya
2. Setelah project berhasil dibuat, tambahkan deklarasi fungsi eksternal yang akan dipanggil. Dalam contoh ini, tambahkan kode deklarasi fungsi berikut:

extern “C” int __cdecl jumlahkan(int,int);

3. Kemudian, kita dapat menggunakan/memanggil fungsi tersebut seperti kita menggunakan/memanggil fungsi lainnya. Berikut contoh penggunaannya.

int nilai1=2;
int nilai2=4;
int hasil;

hasil = jumlahkan(nilai1, nilai2);

4. Sebelum program dikompilasi, terlebih dahulu beri informasi kepada compiler mengenai library yang digunakan. Untuk dapat melakukannya, buka Project Properties (Menu Project > [nama_project] Properties..).

Pada bagian Configuration Properties > Linker > General, Isi Additional Library Directories dengan alamat direktori di mana file .lib berada.
Kemudian, di bagian Configuration Properties > Linker > Input, isi Additional Dependencies dengan nama file .lib.

5. Setelah selesai melakukan konfigurasi, project dapat di-build untuk menghasilkan file program (.exe).
6. Untuk dapat menjalankan program, terlebih dahulu copy file .dll ke direktori di mana file program (.exe) berada. Setelah itu, file program dapat dijalankan.

Selamat mencoba!!๐Ÿ˜‰

Bagi yang menginginkan file solution VS2005, silahkan download di sini

Sumber: Microsoft Developer Network (MSDN)

10 Balasan ke Tutorial Membuat dan Menggunakan file DLL Buatan Sendiri, bagian 2

  1. Randy HW mengatakan:

    jadi ngerti๐Ÿ˜€

  2. baguspewe mengatakan:

    hehe.. semoga bermanfaat..๐Ÿ™‚

  3. zakki120 mengatakan:

    jadi tau dasarnya…

    bagus…hehe

  4. Andry Ongkinata mengatakan:

    itu kenapa make __cdecl emang gunanya apa? Trus bedanya ama __stdcall?
    Bisa tolong dijelaskan sikit kakak… Trim’s

  5. baguspewe mengatakan:

    Hmm.. __cdecl dan __stdcall merupakan dua buah konvensi untuk membuat suatu fungsi.

    Secara garis besar, karakteristik kedua konvensi itu dapat dijelaskan sebagai berikut:
    Dalam __stdcall, stack yang digunakan oleh fungsi dibersihkan (di-clean) di dalam fungsi itu sendiri.

    Sedangkan dalam __cdecl, stack yang digunakan oleh fungsi dibersihkan oleh si pemanggil fungsi itu. Oleh karena perlu ada tambahan kode untuk membersihkan stack oleh si pemanggil, maka kode fungsi dengan konvensi __cdecl akan berukuran lebih besar daripada konvensi __stdcall. Kelebihan dari penggunaan konvensi __cdecl adalah bisa membuat fungsi dengan jumlah argumen yang variable seperti fungsi printf. Dalam fungsi printf, yang tahu berapa jumlah argumennya adalah si pemanggil..๐Ÿ˜€

    Oke, kira-kira begitu, CMIIW..

  6. Rizzo mengatakan:

    Hmmm…. nambahin ah!

    __cdecl standar konvensi bentuk C untuk memanggil method (structured).
    __stdcall untuk main() CALLBACK, WINAPI, dulunya __pascal.

    Sebetulnya WINAPI definisinya: #define WINAPI __stdcall

    Clean yang maksud Baguspewe adalah posisi stack register esp nya (argumen yang disuntik), bukan clean memori method looh. hehehe… kadang2 kalo ada kata2 clean khawatirnya disangka clean memori.

    Biasanya pake Push sama Pop kalo di Assembler X86. Makanya di DLL paling manteb pake __cdecl kecuali kalo DLL-nya berbentuk object.

    Contoh: somefunction(int n);
    maka di __cdecl jadinya begini:
    PUSH ebp
    MOV ebp, esp [n]<- dari stack pointer

    Kalo __stdcall, di asm jadinya:
    _somefunction@4

    4 itu maksudnya DWORD (Double Word alias 4 byte)

    Sisanya, gw dah lupa… hehehehe…๐Ÿ™‚

  7. baguspewe mengatakan:

    @Rizzo

    Terima kasih atas tambahannya! Hehehe.. semoga bisa bermanfaat..๐Ÿ™‚

  8. oth3rside mengatakan:

    thank. nice tutorial
    ๐Ÿ™‚

  9. dEt0Lz mengatakan:

    bos-bos q ktinggalan banged ney…q gie bljar ney….
    mw tanya kan klw kita bwat program pake VB 2008 musti install minimal .net framework v2…nah klw program kita pengen berjalan di’xp biasa yg gag d’update framework’y gma bos???

    • baguspewe mengatakan:

      Halo, maaf baru update lagi.
      Setahu saya, kalo pake VB.Net harus pake framework yang disupport. Kalau misalkan dijalanin di sistem operasi yang frameworknya belum disupport (versinya lebih lama), ya programnya ga bisa jalan.
      Kalau mau, bisa pake VB.Net yang versinya lebih lama (6, 2003, atau 2005).

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: