<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[spezialisierte Template-Klasse mit Unterklasse in Dll exportieren]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte eine spezialisierte Template-Klasse, die eine Unterklasse enthält, in eine DLL exportieren. Leider klappt der Export dieser Unterklasse (CSub) nicht. Die Methoden der Hauptklasse (CMain) werden aber ordnungsgemäß exportiert.</p>
<pre><code class="language-cpp">template &lt;class T&gt;
class CMain
{
public:
    class /*__declspec(dllexport)*/ CSub
    {
        friend class CMain&lt;T&gt;;
    public:
        CSub();
        virtual ~CSub();
        // .. und weitere Methoden bzw. Membervariablen
    };
    CVector();
    virtual ~CVector();
   // .. und weitere Methoden bzw. Membervariablen
};
// Spezialisierung und Export der Hauptklasse
template class __declspec(dllexport) CMain&lt;double&gt;;
</code></pre>
<p>die folgende Variante, nach der Spezialisierung der Hauptklasse, die Unterklasse zu exportieren, habe ich schon vergeblich probiert.</p>
<pre><code class="language-cpp">__declspec(dllexport) CMain&lt;double&gt;::CSub; //geht auch nicht
</code></pre>
<p>Auch die Variante (siehe Zeile 5 (auskommentiert) im Beispiel) das __decspec(dllexport) vor die Deklaration der Unterklasse zu setzen, funktioniert nicht. Da in der DLL laut Dependencywalker nun zwar der Unterklassenname auftaucht aber trotzdem die Methoden fehlen.<br />
Wer kann mir weiterhelfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/161842/spezialisierte-template-klasse-mit-unterklasse-in-dll-exportieren</link><generator>RSS for Node</generator><lastBuildDate>Wed, 29 Jul 2026 20:48:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/161842.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 11 Oct 2006 15:28:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to spezialisierte Template-Klasse mit Unterklasse in Dll exportieren on Wed, 11 Oct 2006 15:28:00 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte eine spezialisierte Template-Klasse, die eine Unterklasse enthält, in eine DLL exportieren. Leider klappt der Export dieser Unterklasse (CSub) nicht. Die Methoden der Hauptklasse (CMain) werden aber ordnungsgemäß exportiert.</p>
<pre><code class="language-cpp">template &lt;class T&gt;
class CMain
{
public:
    class /*__declspec(dllexport)*/ CSub
    {
        friend class CMain&lt;T&gt;;
    public:
        CSub();
        virtual ~CSub();
        // .. und weitere Methoden bzw. Membervariablen
    };
    CVector();
    virtual ~CVector();
   // .. und weitere Methoden bzw. Membervariablen
};
// Spezialisierung und Export der Hauptklasse
template class __declspec(dllexport) CMain&lt;double&gt;;
</code></pre>
<p>die folgende Variante, nach der Spezialisierung der Hauptklasse, die Unterklasse zu exportieren, habe ich schon vergeblich probiert.</p>
<pre><code class="language-cpp">__declspec(dllexport) CMain&lt;double&gt;::CSub; //geht auch nicht
</code></pre>
<p>Auch die Variante (siehe Zeile 5 (auskommentiert) im Beispiel) das __decspec(dllexport) vor die Deklaration der Unterklasse zu setzen, funktioniert nicht. Da in der DLL laut Dependencywalker nun zwar der Unterklassenname auftaucht aber trotzdem die Methoden fehlen.<br />
Wer kann mir weiterhelfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1152983</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1152983</guid><dc:creator><![CDATA[Wuuuust-Coder]]></dc:creator><pubDate>Wed, 11 Oct 2006 15:28:00 GMT</pubDate></item><item><title><![CDATA[Reply to spezialisierte Template-Klasse mit Unterklasse in Dll exportieren on Thu, 12 Oct 2006 16:09:18 GMT]]></title><description><![CDATA[<p>Nur zur Information, falls noch jemand auf das Problem stößt. Es läßt sich wie folgt umgehen.</p>
<pre><code class="language-cpp">template &lt;class T&gt; class CMain; //damit CMain in CSub bekannt, wegen friend deklaration

// externe Deklaration der eigentlichen Unterklasse
template &lt;class T&gt;
class CSub
{
    friend class CMain&lt;T&gt;;
public:
    CSub();
    virtual ~CSub();
    // .. und weitere Methoden bzw. Membervariablen
};

template &lt;class T&gt;
class CMain
{
public:
    typedef CSub&lt;T&gt; CSub; //hier wird CSub zur Unterklasse gemacht
    CVector();
    virtual ~CVector();
   // .. und weitere Methoden bzw. Membervariablen
};

// Spezialisierung und Export der Unterklasse und der Hauptklasse
template class __declspec(dllexport) CSub&lt;double&gt;;
template class __declspec(dllexport) CMain&lt;double&gt;;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1153762</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1153762</guid><dc:creator><![CDATA[Wuuuust-Coder]]></dc:creator><pubDate>Thu, 12 Oct 2006 16:09:18 GMT</pubDate></item><item><title><![CDATA[Reply to spezialisierte Template-Klasse mit Unterklasse in Dll exportieren on Thu, 12 Oct 2006 16:11:55 GMT]]></title><description><![CDATA[<p>CVector() und virtual ~CVector() ist natürlich Quatsch, das ist CMain jeweils.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1153767</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1153767</guid><dc:creator><![CDATA[Wuuuust-Coder]]></dc:creator><pubDate>Thu, 12 Oct 2006 16:11:55 GMT</pubDate></item></channel></rss>