Jak się tworzy biblioteki DLL
Ostatnio zmodyfikowano 2009-01-02 23:16
zori |
» 2009-01-02 20:41:01 extern "C" dopisuje się na poczatku pliku *.h u ciebie bedzie to wyglądac tak: extern "C" #ifndef _dajglos_H_ #define _dajglos_H_
#if BUILDING_DLL # define DLLFUNCTION __stdcall __declspec (dllexport) #else # define DLLFUNCTION __stdcall __declspec (dllimport) #endif
int DLLFUNCTION get64( void );
#endif
Uzywa sie tego aby powiedziec kompilatorowi ze teraz bedzie uzywany tylko sac "C" niby jest zalecane uzywanie go właśnei do bibliotek dll. |
|
pekfos Temat założony przez niniejszego użytkownika |
» 2009-01-02 22:20:04 jak narazie nie widze różnicy w działaniu programu ale jak sądzę kiedyś będą one widoczne :) |
|
zori |
» 2009-01-02 22:25:33 Nie ma róznicy w działany ale przeczytaj to co napisałe manfred to jest różnica jesli uzyjesz lub nie uzyjesz.
/edit juz poprawiłm twuj nick |
|
pekfos Temat założony przez niniejszego użytkownika |
» 2009-01-02 22:27:42 już to czytałem. nie widze narazie różnicy bo nie miałem błędów z kompilacją. |
|
zori |
» 2009-01-02 22:35:04 O to chodzi
_get64 zamiast _imp___Z5get64v@0 co pozwala na zaimportowanie funkcji w każdym kompilatorze |
|
zori |
» 2009-01-02 23:24:33 A co do extern "C" to tak miałem w innym kursie naspiane, jak twierdziesz że tak sie powinno pisac to tak będe pisał. Od teraz będę juz wiedział THX. |
|
manfred |
» 2009-01-02 16:13:21 #ifdef BUILDING_DLL #define DLLFUNCTION __stdcall __declspec(dllexport) #else #define DLLFUNCTION __stdcall __declspec(dllimport) #endif
int DLLFUNCTION getSixtyNine() { return 69; } |
|
manfred |
» 2009-01-02 18:42:24 Po skompilowaniu dlla powinien zrobić się plik .lib (czy tam .a), zlinkuj go przez ld do programu. A - extern "C" w lesie (chyba że ten dll ma być używany tylko pod gcc w wersji którą masz ty)? |
|
1 « 2 » 3 |