Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Jak się tworzy biblioteki DLL

Ostatnio zmodyfikowano 2009-01-02 23:16
Autor Wiadomość
zori
» 2009-01-02 20:41:01
extern "C" dopisuje się na poczatku pliku *.h u ciebie bedzie to wyglądac tak:
C/C++
extern "C"
#ifndef _dajglos_H_
#define _dajglos_H_

#if BUILDING_DLL
# define DLLFUNCTION __stdcall __declspec (dllexport)
#else /* Not BUILDING_DLL */
# define DLLFUNCTION __stdcall __declspec (dllimport)
#endif /* Not BUILDING_DLL */

/*
class DLLIMPORT DllClass
{
  public:
    DllClass();
    virtual ~DllClass(void);

  private:

};*/
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.
P-3235
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 :)
P-3247
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
P-3249
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ą.
P-3250
zori
» 2009-01-02 22:35:04
O to chodzi

_get64 zamiast _imp___Z5get64v@0  co pozwala na zaimportowanie funkcji w każdym kompilatorze
P-3253
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.
P-3265
manfred
» 2009-01-02 16:13:21
C/C++
#ifdef BUILDING_DLL
#define DLLFUNCTION __stdcall __declspec(dllexport)
#else
#define DLLFUNCTION __stdcall __declspec(dllimport)
#endif

int DLLFUNCTION getSixtyNine() { return 69; }
P-18684
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)?
P-18685
1 « 2 » 3
Poprzednia strona Strona 2 z 3 Następna strona