Aplikacija koja poziva dll:
U Unit1.h recimo klasi forme:
Code:
private:
typedef char* __declspec(dllimport) CallFunkcija(); // deklaracija
CallFunkcija * Poziv;
u Unit21cpp-u:
Code:
// Prvo ucitavamo Dll.
HINSTANCE Dll = LoadLibrary(".....putanja\\Moj.dll");
// Provera da li je Dll ucitan
if (Dll)
{
// Uzimamo adresu funkcije.
Poziv= (CallFunkcija *)GetProcAddress(Dll, "_Funkcija");
// e sad Poziv() je u stvari pozivanje funkcije isto kao Funkcija();
ShowMessage(Poziv());
// Na kraju oslobadjamo dll.
FreeLibrary(Dll);
}
else
ShowMessage("error nije ucitan dll bla bla bla...");
A u dll-u
Code:
extern "C" __declspec(dllexport) char * Funkcija(); // deklaracija
#pragma argsused
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
return 1;
}
i normalno implementacija Funkcije:
Code:
char * Funkcija()
{
char nekicar[256];
char *rezultat;
//....................................
//....................................
//....................................
return rezultat;
}
'Think evolution, not revolution.'