[ MarkoBalkan @ 19.02.2009. 12:57 ] @
situacija je slijedeća.


recimo imam c++ projekt.uzet ćemo da se radi u cdev c++.

projekt sadrži main.cpp i

projektu dodam dll file koji sadrži, prvi.cpp i prvi.h

ako ja u main.cpp ubacim prvi.h koristim jedan dio iz dll file, kada kompajliram dll i main, da li će to raditi?

kako se rade takve stvari kod c++?
[ Eurora3D Team @ 19.02.2009. 14:31 ] @
Nije mi poznato tacno za dev c++ ali se u principu radi ovako.
Napravis dll projekat (npr. jedan cpp i jedan h fajl)
Moras da exportujes neke funkcije (da njihove adrese budu upisane u export tabelu dll fajla) ako hoces da ih koristis iz nekog programa ili dll-a.
To se radi tako sto se dodaje __declspec(dllexport) u deklaraciju funkcije. Ovo moze da se definise da bi bilo preglednije
primer
Code:

#define DLL_EXPORT __declspec(dllexport)
int DLL_EXPORT Funkcija(char* tekst); // ovo ide u h fajl

int DLL_EXPORT Funkcija(char* tekst)
{
   return 0;
}

Kod MS kompajlera imas def fajlove za eksportovanje funkcija ... ali ovako bi trebalo da radi na svakom kompajleru.
Napravi dll i dobices dll i lib fajl kod MS i Borlanda odnosno dll i o fajl kod GNU kompajlera (MinGW , GCC)
Kad koristis dll u exe-u includuj njen h fajl i u linker opcijama exe-a dodaj ovaj lib fajl koji si dobio (ili o fajl)
I kad pokreces program dll treba da bude u istom folderu ili u nekom sistemskom folderu inace ce program , posto je linkovan sa dll-om koju ne moze da nadje, da se srusi pri pokretanju.
To je to ukratko
[ MarkoBalkan @ 19.02.2009. 15:54 ] @
a za korištenje su dosta samo dll file i exe? ili moram i lib staviti?
[ Eurora3D Team @ 19.02.2009. 19:31 ] @
Da, za koriscenje samo dll i exe , s tim da dll treba da bude u istom folderu ili u nekom sistemskom folderu