<?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[erstellen einer WIN32 DLL mit &amp;lt;string&amp;gt;]]></title><description><![CDATA[<p>Hallo!</p>
<p>Nach langem probieren habe ich es geschafft aus meiner eigenen Klasse eine WIN32 DLL zu erstellen. War eigentlich ganz einfach:</p>
<p>1. Neues Projekt im VS7 angelegt.<br />
2. Projekteinstellungen: &quot;Visual C++-Projekte/Win32/Win32-Projekt<br />
3. Unter Anwendungseinstellungen -&gt; DLL<br />
4. dem erstellten Anwendungsgerüst meine Klasse in Form von Headerdatei (.h) und Implementierungsdatei(.cpp) hinzufügen.<br />
5. der Headerdatei folgendes hinzufügen :</p>
<pre><code class="language-cpp">#define DLLEXPORT __declspec(dllexport)

class DLLEXPORT ClassName
{
    // Eigenschaften und Methoden unverändert lassen !!!
}
</code></pre>
<p>6. Projekt erstellen drücken (ohne vorher meine Klassenheader irgendwo per #include in den erstelleten Projektcode einzufügen)<br />
7. Fertig !!!!</p>
<p>So weit so gut.</p>
<p>Jetzt habe ich aber in meiner Klasse Strings benutzt, und dafür die STL Bibliothek &lt;string&gt; per #include eingebunden. Also sieht es ab Schritt 5 so aus:</p>
<pre><code class="language-cpp">#include &lt;string&gt;
#define DLLEXPORT __declspec(dllexport)

using namespace std;

class DLLEXPORT ClassName
{
    string member;
    // Eigenschaften und Methoden unverändert lassen !!!
}
</code></pre>
<p>Wenn ich jetzt das Projekt erstelle, dann bekomme ich die Warnung: *&quot;warning C4251: 'ClassName::member': class 'std::basic_string&lt;_Elem,_Traits,_Ax&gt;' erfordert eine DLL-Schnittstelle, die von Clients von class 'ClassName' verwendet wird<br />
with<br />
[<br />
_Elem=char,<br />
_Traits=std::char_traits&lt;char&gt;,<br />
_Ax=std::allocator&lt;char&gt;<br />
]&quot;<br />
*</p>
<p>Was ist das für eine Warnung, und wie kann ich sie beheben??</p>
<p>Funktionieren tut die Dll trotzdem, aber wenn ich die erstellte Dll nun benutze, um sie per #include für eine neue Dll zu verwenden, dann bekomme ich beim Benutzen ganz komische Fehlermeldungen. Bei der Fehlerbehebung wollte ich dann lieber ganz vorne anfangen.</p>
<p>Ich hoffe ich finde hier einen Experten, der mir helfen kann.</p>
<p>Gruß<br />
Maik</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/117760/erstellen-einer-win32-dll-mit-lt-string-gt</link><generator>RSS for Node</generator><lastBuildDate>Fri, 03 Jul 2026 13:33:07 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/117760.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 11 Aug 2005 06:33:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to erstellen einer WIN32 DLL mit &amp;lt;string&amp;gt; on Thu, 11 Aug 2005 06:33:18 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Nach langem probieren habe ich es geschafft aus meiner eigenen Klasse eine WIN32 DLL zu erstellen. War eigentlich ganz einfach:</p>
<p>1. Neues Projekt im VS7 angelegt.<br />
2. Projekteinstellungen: &quot;Visual C++-Projekte/Win32/Win32-Projekt<br />
3. Unter Anwendungseinstellungen -&gt; DLL<br />
4. dem erstellten Anwendungsgerüst meine Klasse in Form von Headerdatei (.h) und Implementierungsdatei(.cpp) hinzufügen.<br />
5. der Headerdatei folgendes hinzufügen :</p>
<pre><code class="language-cpp">#define DLLEXPORT __declspec(dllexport)

class DLLEXPORT ClassName
{
    // Eigenschaften und Methoden unverändert lassen !!!
}
</code></pre>
<p>6. Projekt erstellen drücken (ohne vorher meine Klassenheader irgendwo per #include in den erstelleten Projektcode einzufügen)<br />
7. Fertig !!!!</p>
<p>So weit so gut.</p>
<p>Jetzt habe ich aber in meiner Klasse Strings benutzt, und dafür die STL Bibliothek &lt;string&gt; per #include eingebunden. Also sieht es ab Schritt 5 so aus:</p>
<pre><code class="language-cpp">#include &lt;string&gt;
#define DLLEXPORT __declspec(dllexport)

using namespace std;

class DLLEXPORT ClassName
{
    string member;
    // Eigenschaften und Methoden unverändert lassen !!!
}
</code></pre>
<p>Wenn ich jetzt das Projekt erstelle, dann bekomme ich die Warnung: *&quot;warning C4251: 'ClassName::member': class 'std::basic_string&lt;_Elem,_Traits,_Ax&gt;' erfordert eine DLL-Schnittstelle, die von Clients von class 'ClassName' verwendet wird<br />
with<br />
[<br />
_Elem=char,<br />
_Traits=std::char_traits&lt;char&gt;,<br />
_Ax=std::allocator&lt;char&gt;<br />
]&quot;<br />
*</p>
<p>Was ist das für eine Warnung, und wie kann ich sie beheben??</p>
<p>Funktionieren tut die Dll trotzdem, aber wenn ich die erstellte Dll nun benutze, um sie per #include für eine neue Dll zu verwenden, dann bekomme ich beim Benutzen ganz komische Fehlermeldungen. Bei der Fehlerbehebung wollte ich dann lieber ganz vorne anfangen.</p>
<p>Ich hoffe ich finde hier einen Experten, der mir helfen kann.</p>
<p>Gruß<br />
Maik</p>
]]></description><link>https://www.c-plusplus.net/forum/post/849841</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/849841</guid><dc:creator><![CDATA[Kiamur]]></dc:creator><pubDate>Thu, 11 Aug 2005 06:33:18 GMT</pubDate></item><item><title><![CDATA[Reply to erstellen einer WIN32 DLL mit &amp;lt;string&amp;gt; on Sat, 13 Aug 2005 00:14:52 GMT]]></title><description><![CDATA[<p>Dieser Artikel sollte dir weiterhelfen: <a href="http://support.microsoft.com/kb/q168958/" rel="nofollow">http://support.microsoft.com/kb/q168958/</a></p>
<p>Gruss<br />
EB</p>
]]></description><link>https://www.c-plusplus.net/forum/post/851335</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/851335</guid><dc:creator><![CDATA[EB]]></dc:creator><pubDate>Sat, 13 Aug 2005 00:14:52 GMT</pubDate></item></channel></rss>