Dll-Export in einem spezialisierten Template

Design Patterns, Erklärungen zu Algorithmen, Optimierung, Softwarearchitektur
Forumsregeln
Wenn das Problem mit einer Programmiersprache direkt zusammenhängt, bitte HIER posten.
Antworten
Bergmon
Beiträge: 46
Registriert: 03.05.2003, 16:39
Kontaktdaten:

Dll-Export in einem spezialisierten Template

Beitrag 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
Despotist
Establishment
Beiträge: 394
Registriert: 19.02.2008, 16:33

Re: Dll-Export in einem spezialisierten Template

Beitrag 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
Benutzeravatar
Aramis
Moderator
Beiträge: 1458
Registriert: 25.02.2009, 19:50
Echter Name: Alexander Gessler
Wohnort: 2016
Kontaktdaten:

Re: Dll-Export in einem spezialisierten Template

Beitrag 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 ..
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: Dll-Export in einem spezialisierten Template

Beitrag 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
Bergmon
Beiträge: 46
Registriert: 03.05.2003, 16:39
Kontaktdaten:

Re: Dll-Export in einem spezialisierten Template

Beitrag 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.
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: Dll-Export in einem spezialisierten Template

Beitrag von kimmi »

Das Dependency-Handling des VS war noch nie das Beste. Ich habe ähnliches bereits unzählige Male erlebt.

Gruß Kimmi
Antworten