Template in der DLL
-
hallo,
gibts es eine Möglichkein eine Templateklasse in eine DLL datei zu stecken ?
Problem:
viele DLL's die ich habe exportieren je gleichnamig funktion, die aber verschiedene zeigertyps zutückliefern:1.dll: int* getpointer(); 2.dll: float* getpointer(); 3.dll: baseclass* getpointer();
ich will eine dll schreiben, die dann diese alle dll's lädt(alle in bestimmten verzeichniss) und diese methoden von jeder dll aufruft,
einzige problem ist, sind die verschiedene zeigertyps,
so was ginge dann z.b. nicht:zu erstellende dll (exportierte funktion):
anstelle von dem int aber ein beliebieger zeigertypint* LoadDLL(int dllnummer) { }
dann müsste es in etwa so sein:
(pseudocode, da ich mit templates nicht auskenne)template<type T> T* LoadDLL(int dllnummer) { }
aber ich will diese LoadDLL() funktion in eine DLL packen, damit der unser keine implemntation sieht(wichtig),
besteht da eine möglichkeit ? bzw gibts da andere möglichkeiten ?
-
du musst explizit jeden typ den du hinterher im programm benutzen willst,einzeln exportieren.
bei einer funktion ging das soweit ich weis so:
#define EXPORT (hier die compilerspezifische exportkeywords eintragen) template<class T> T foo(T ){...} EXPORT foo<int>; EXPORT foo<float>;
bin mir aber wie gesagt nicht mehr sicher, da ich mir templates in dlls abgewöhnt hab