Seite 1 von 1

Dll-Export in einem spezialisierten Template

Verfasst: 04.08.2009, 18:39
von Bergmon
ist der dll-export in einem spezialisierten template möglich? will nicht so richtig funktionieren.

hab eine template-klasse in einer dll spezialisiert und darin eine neue klasse definiert, welche ich gerne exportieren würde, nur irgendwie nimmt der compiler keine quellcode-dateien an(cpp werden ignoriert).

bsp:

Code: Alles auswählen

template <typename T>
 class TemplateClass;
, dann spezialisiert

Code: Alles auswählen

template <>
 class TemplateClass<int>
{
 class ExportClass //<- möchte ich exportieren
 {
  public:
   __declspec(dllexport) ExportClass(); //konstruktor export
 };
};
gruß bergmon

Re: Dll-Export in einem spezialisierten Template

Verfasst: 04.08.2009, 19:21
von Despotist
Ich muss gerade tief in meinem Gedächtnis kramen aber templates gehen nicht in cpp-Dateien. Entweder du implementierst sie in der h-File aus oder in einer inline file (.inl). Hoffe das löst dein Problem. Mit Templates in dll's hab ich noch nicht gearbeitet.

Gruß
Despotist

Re: Dll-Export in einem spezialisierten Template

Verfasst: 04.08.2009, 19:30
von Aramis
Vollständig spezialisierte Templates sind afaik semantisch identisch zu ganz normalen Klassen und müssten somit exportierbar sein.

Ich vermute aber, dass der DLL-Export eines einzelnen Members einer inneren Klasse nur möglich ist, wenn die äußere auch als dllexport deklariert ist ..

Re: Dll-Export in einem spezialisierten Template

Verfasst: 05.08.2009, 09:16
von kimmi
Entweder man muß die ganze Klasse exportieren oder aber einzelne Methoden. Beides zusammen ist doppelt gemobbelt. Zumindest sagten das die Warnungen vom VS2003, seitdem habe einzelne Methoden nicht mehr exportiert.

Zu deiner Frage: Schau dir mal diesen Blog-Eintrag an:
http://www.die.de/blog/PermaLink.aspx?g ... 8da864baf2

Gruß Kimmi

Re: Dll-Export in einem spezialisierten Template

Verfasst: 05.08.2009, 18:34
von Bergmon
vielen dank für eure hilfe.

irgendwie hat mich vs wohl reingelegt. es funktioniert jetzt - einfach nach schema f, wie man eben jede andere klasse auch exportiert.
hatte alle temporären dateien gelöscht und neu kompiliert, jedoch wollten die export-symbole nicht so richtig mitgespeichert werden. dann ist mir mein vs abgestürzt und nach einem neustart ging alles wie gewollt...
kimmi hat geschrieben:Entweder man muß die ganze Klasse exportieren oder aber einzelne Methoden. Beides zusammen ist doppelt gemobbelt. Zumindest sagten das die Warnungen vom VS2003, seitdem habe einzelne Methoden nicht mehr exportiert.
da überleg ich jedesmal :), doch wenn spezialisierte templates in der klasse mit dabei sind exportier ich meistens nur die gewünschten funktionen, weil man sonst auch noch die templates extra exportieren sollte.

Re: Dll-Export in einem spezialisierten Template

Verfasst: 05.08.2009, 20:39
von kimmi
Das Dependency-Handling des VS war noch nie das Beste. Ich habe ähnliches bereits unzählige Male erlebt.

Gruß Kimmi