Endurion
Sir Bugalot
In C++ gibt es leider keine "richtigen" Interfaces, aber eine abstrakte Basisklasse kommt dem am nächsten:
In der DLL kannst du eine Klasse erzeugen, die von dieser Basisklasse abgeleitet ist.
Diese Klasse muss dann sämtliche Methoden aus dem Interface implementieren. Zusätzlich brauchst du eine simple Funktion, die dir von der DLL einen Pointer auf eine Basisklasse zurückgibt:
Die DLL exportiert dann lediglich eine Funktion vom Typ IMeinInterface* HoleInterface().
Die Funktion holst du dir, rufst sie auf, und schon hast du eine Klasse, die alles zur Verfügung stellt, was das Interface vorgibt. Von den Innereien der Klasse siehst du nichts.
Code:
class IMeinInterface
{
public:
virtual int HoleMirDenWert() = 0;
};
In der DLL kannst du eine Klasse erzeugen, die von dieser Basisklasse abgeleitet ist.
Diese Klasse muss dann sämtliche Methoden aus dem Interface implementieren. Zusätzlich brauchst du eine simple Funktion, die dir von der DLL einen Pointer auf eine Basisklasse zurückgibt:
Code:
// in der DLL
CMeineTolleVomInterfaceAbgeleiteteKlasse meineKlasse;
IMeinInterface* HoleInterface()
{
return &meineKlasse;
}
Die DLL exportiert dann lediglich eine Funktion vom Typ IMeinInterface* HoleInterface().
Die Funktion holst du dir, rufst sie auf, und schon hast du eine Klasse, die alles zur Verfügung stellt, was das Interface vorgibt. Von den Innereien der Klasse siehst du nichts.