extern "C" + Funktionen aus Klassen + DLL
-
Kann man !nur! einige Funktionen aus einer Klasse einer DLL exportieren und trotzdem extern "C" verwenden?
#if BUILDING_DLL #define DLLPORT __declspec (dllexport) #else /* Not BUILDING_DLL */ #define DLLPORT __declspec (dllimport) #endif /* Not BUILDING_DLL */ class DllClass { public: DllClass(); virtual ~DllClass(); extern "C" DLLPORT string* Version(void); //wie muss ich das schreiben private: };
PS: Forensuche schon benutzt!
-
Hey bitte helft mir!
-
Klassenmember kannst Du nicht direkt als extern "C" deklarieren. Aber Du kannst eine C-Schnittstelle fuer Deine Klasse machen:
class A { public: void f( void ); }; extern "C" { void call_f( A* a ) { a->f(); } }
-
wenn Du die Funktion gleich exportieren willst, mach
extern "C" { void _declspec(dllexport) call_f( A* a ) { a->f(); } }