2012-02-27 10 views
11

Czy istnieje sposób, aby eksportować tylko funkcję DLL cos w tutoriali zawsze klas eksport z czymś takim:Export funkcjonować do DLL bez klasy

static __declspec(dllexport) double Add(double a, double b); 

wewnątrz klasy oświadczenie powyżej nie powoduje żadnego problemu, ale bez klasy to daje:

dllexport/dllimport requires external linkage 

Odpowiedz

14

problemem jest „statyczne” kwalifikator. Musisz go usunąć, ponieważ w tym kontekście oznacza niewłaściwą rzecz. Spróbuj po prostu:

__declspec(dllexport) double Add(double a, double b); 

To właśnie musisz mieć w swoim pliku nagłówkowym podczas kompilowania biblioteki DLL. Teraz, aby uzyskać dostęp do funkcji z programu, który korzysta z DLL, trzeba mieć plik nagłówka z tym:

double Add(double a, double b); 

Można użyć tego samego pliku nagłówka dla obu celów, jeśli używasz #ifdefs:

#ifndef MYDLL_EXPORT 
    #define MYDLL_EXPORT 
#endif 

MYDLL_EXPORT double Add(double a, double b); 
Powiązane problemy