Jumat, 21 Juni 2013

C DLL __stdcall

Pernahkah kalian mencoba untuk menggunakan fungsi exported di DLL dengan C atau C++, lalu mengalami yang namanya bugs, stuck, atau error? Yah, itu karena metode pemanggilan file DLL di aplikasi C/C++ menggunakan __cdecl (C Declaration), bukan dengan __stdcall (Standard Call).


Tetapi jangan khawatir, berikut adalah contoh kode untuk memanggil fungsi DLL dengan metode __stdcall untuk memanggil exported function di file DLL tanpa menggunakan bantuan file Static Library.

#include <windows.h>

typedef int (__stdcall *MsgBoxProc)(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType);

int main(int argc, char * argv[]);
{
    MsgBoxProc MsgBox;

    MsgBox = (MsgBoxProc)GetProcAddress(LoadLibrary("user32.dll"), "MessageBoxA");
    MsgBox(0, "Selamat mencoba :)", "Alfathrom", MB_ICONINFORMATION);

    return(0);
}

Selamat belajar. :)

Tidak ada komentar:

Posting Komentar