DLL mit Schnittstellenfunktion
-
Ich möchte eine DLL erzeugen, die eine Schnittstellenfunktion exportiert, die einen Zeiger auf ein Objekt liefert. Hat jemand einen Tip oder ein kleines Beispiel?
-
#define MY_DLL_API __declspec(dllexport) class IMyClass { pulbic: virtual void Method1() = 0; virtual void Method2() = 0; } MY_DLL_API IMyClass *CreateMyObject();In der Dll leitest du dann ne Klasse von IMyClass ab in der du den code implementierst.

-
Danke für den Tip! Ich bin bloß noch nicht drauf gekommen, wie ich dann in der Anwendung auf die Funktionen zugreife. Wäre schön, wenn mir das noch jemand erklären könnte.
-
MyDLL.h
#ifdef MY_DLL_EXPORTS #define MY_DLL_API __declspec(dllexport) #else #define MY_DLL_API __declspec(dllimport) #endif class IMyClass { public: virtual void Method1() = 0; virtual void Method2() = 0; } MY_DLL_API IMyClass *CreateMyObject(); MY_DLL_API void DeleteMyObject(IMyClass *pClass);MyDLL.cpp
#define MY_DLL_EXPORTS // DLL code - wir exportieren die funktionen #include "MyDLL.h" // die implementation der klasse class CMyClass : public IMyClass { public: void Method1() { // blabla } void Method2() { // blabla } } // die exportierten funktionen IMyClass *CreateMyObject() { return new CMyClass(); } void DeleteMyObject(IMyClass *pClass) { delete pClass; }MyDLL.def
EXPORTS CreateMyObject DeleteMyObjectMyProgram.cpp
#include "MyDLL.h" // diesmal ohne #define MY_DLL_EXPORTS //... IMyClass *pObj = CreateMyObject(); pObj->Method1(); DeleteMyObject(pObj); //...
-
ich danke auch

schön kurz und bündig. habe selber gerade schon vergessen gehabt, wie das gehen soll.