<?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[DLL - Probleme beim Importieren]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine DLL, in der mehrere Klassen definiert werden, sieht in etwa so aus:</p>
<p>class FIRSTDLL_EXPORT FirstClass : public QObject<br />
{<br />
Q_OBJECT<br />
public:<br />
FirstClass(QObject *parent = 0);<br />
~FirstClass();<br />
[...bla...]<br />
};</p>
<p>Das Makro FIRSTDLL_EXPORT ist beim erstellen der DLL auf __declspec(dllexport) gesetzt, beim verwenden (in einer anderen DLL) auf __declspec(dllimport) gesetzt.</p>
<p>Das erstellen dieser DLL läuft wunderbar, allerdings wenn ich die zweite DLL (die die erste benutzt) erstellen will, bekomme ich folgende Fehlermeldungen:</p>
<p>Kompilieren...<br />
secondclass.cpp<br />
z:\projects\Dll-Test\SecondDll\..\FirstDll\firstclass.h(9) : error C2470: 'FirstClass': Sieht wie eine Funktionsdefinition aus, es ist aber keine Liste mit formalen Parametern vorhanden; sichtbarer Funktionstext wird übersprungen<br />
z:\projects\Dll-Test\SecondDll\..\FirstDll\firstclass.h(9) : error C2059: Syntaxfehler: 'public'<br />
secondclass.cpp(5) : error C2512: 'FirstClass': Kein geeigneter Standardkonstruktor verfügbar</p>
<p>Die zweite Klasse sieht so aus:</p>
<p>#include &quot;defines.h&quot;<br />
#include &quot;..\firstdll\firstclass.h&quot;</p>
<p>class FirstClass;<br />
class QObject;</p>
<p>class SECONDDLL_EXPORT SecondClass<br />
{<br />
public:<br />
SecondClass();<br />
~SecondClass();</p>
<p>FirstClass *myFirstClass;</p>
<p>private:</p>
<p>};</p>
<p>Kann mir jemand sagen, was hier los ist und wie ich das sauber kompiliert bekomme?</p>
<p>Vielen Dank im Voraus...</p>
<p>Gruß<br />
SaureGurke</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/128279/dll-probleme-beim-importieren</link><generator>RSS for Node</generator><lastBuildDate>Tue, 25 Aug 2026 12:59:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/128279.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 02 Dec 2005 09:19:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to DLL - Probleme beim Importieren on Fri, 02 Dec 2005 09:19:17 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine DLL, in der mehrere Klassen definiert werden, sieht in etwa so aus:</p>
<p>class FIRSTDLL_EXPORT FirstClass : public QObject<br />
{<br />
Q_OBJECT<br />
public:<br />
FirstClass(QObject *parent = 0);<br />
~FirstClass();<br />
[...bla...]<br />
};</p>
<p>Das Makro FIRSTDLL_EXPORT ist beim erstellen der DLL auf __declspec(dllexport) gesetzt, beim verwenden (in einer anderen DLL) auf __declspec(dllimport) gesetzt.</p>
<p>Das erstellen dieser DLL läuft wunderbar, allerdings wenn ich die zweite DLL (die die erste benutzt) erstellen will, bekomme ich folgende Fehlermeldungen:</p>
<p>Kompilieren...<br />
secondclass.cpp<br />
z:\projects\Dll-Test\SecondDll\..\FirstDll\firstclass.h(9) : error C2470: 'FirstClass': Sieht wie eine Funktionsdefinition aus, es ist aber keine Liste mit formalen Parametern vorhanden; sichtbarer Funktionstext wird übersprungen<br />
z:\projects\Dll-Test\SecondDll\..\FirstDll\firstclass.h(9) : error C2059: Syntaxfehler: 'public'<br />
secondclass.cpp(5) : error C2512: 'FirstClass': Kein geeigneter Standardkonstruktor verfügbar</p>
<p>Die zweite Klasse sieht so aus:</p>
<p>#include &quot;defines.h&quot;<br />
#include &quot;..\firstdll\firstclass.h&quot;</p>
<p>class FirstClass;<br />
class QObject;</p>
<p>class SECONDDLL_EXPORT SecondClass<br />
{<br />
public:<br />
SecondClass();<br />
~SecondClass();</p>
<p>FirstClass *myFirstClass;</p>
<p>private:</p>
<p>};</p>
<p>Kann mir jemand sagen, was hier los ist und wie ich das sauber kompiliert bekomme?</p>
<p>Vielen Dank im Voraus...</p>
<p>Gruß<br />
SaureGurke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/932026</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/932026</guid><dc:creator><![CDATA[SaureGurke]]></dc:creator><pubDate>Fri, 02 Dec 2005 09:19:17 GMT</pubDate></item><item><title><![CDATA[Reply to DLL - Probleme beim Importieren on Fri, 02 Dec 2005 09:25:18 GMT]]></title><description><![CDATA[<p>2. Datei:</p>
<pre><code class="language-cpp">class FirstClass; 
class QObject;
</code></pre>
<p>sind doch schon hier</p>
<pre><code class="language-cpp">#include &quot;..\firstdll\firstclass.h
</code></pre>
<p>deklariert. Das könnte ihn etwas verwirren...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/932027</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/932027</guid><dc:creator><![CDATA[Mathias]]></dc:creator><pubDate>Fri, 02 Dec 2005 09:25:18 GMT</pubDate></item><item><title><![CDATA[Reply to DLL - Probleme beim Importieren on Fri, 02 Dec 2005 09:36:55 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ne, das hat ihn nicht verwirrt.</p>
<p>Was mich wundert, ist, wie er auf das schmale Brett kommt, in der Klasse eine Funktionsdefinition zu sehen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Gruß<br />
SaureGurke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/932043</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/932043</guid><dc:creator><![CDATA[SaureGurke]]></dc:creator><pubDate>Fri, 02 Dec 2005 09:36:55 GMT</pubDate></item><item><title><![CDATA[Reply to DLL - Probleme beim Importieren on Fri, 02 Dec 2005 09:57:11 GMT]]></title><description><![CDATA[<p>Das ist ein klares Anzeichen dafür, dass er die Klassendeklaration vorher nicht schnallt. Denn dann würde er den Typ erkennen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/932072</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/932072</guid><dc:creator><![CDATA[Mathias]]></dc:creator><pubDate>Fri, 02 Dec 2005 09:57:11 GMT</pubDate></item><item><title><![CDATA[Reply to DLL - Probleme beim Importieren on Fri, 02 Dec 2005 10:05:49 GMT]]></title><description><![CDATA[<p>Ich glaube, ich habs! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Die Makrodefinition</p>
<pre><code class="language-cpp">#ifdef FIRSTDLL_LIB
# define FIRSTDLL_EXPORT __declspec(dllexport)
#else
# define FIRSTDLL_EXPORT __declspec(dllimport)
#endif
#ifndef FIRSTDLL_EXPORT
#define FIRSTDLL_EXPORT
#endif
</code></pre>
<p>steht in der defines.h und dann rafft er es nicht, schreib ich sie direkt ins Headerfile, klappt es...</p>
<p>Gruß<br />
SaureGurke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/932080</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/932080</guid><dc:creator><![CDATA[SaureGurke]]></dc:creator><pubDate>Fri, 02 Dec 2005 10:05:49 GMT</pubDate></item><item><title><![CDATA[Reply to DLL - Probleme beim Importieren on Fri, 02 Dec 2005 10:24:22 GMT]]></title><description><![CDATA[<p>Is igendwie auch logisch... die Macros hat er dann beim Einbinden von ... firstclass.h schon aufgelöst. Solltest du in firstclass includieren, dann stimmts.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/932097</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/932097</guid><dc:creator><![CDATA[Mathias]]></dc:creator><pubDate>Fri, 02 Dec 2005 10:24:22 GMT</pubDate></item></channel></rss>