<?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[verwalten von __declspec bei externen Dateien]]></title><description><![CDATA[<p>Ich habe ein logisches Problem mit den __declspec Definitionen.</p>
<p>Und zwar habe ich eine Klasse CameraImage die ich in mehreren Projekten (hier mehrere Kameras unterschiedlicher Hersteller) nutzen möchte. Ich habe daher diese Klasse als svn:external in jedem Projekt in /project/src/include/CameraImage importiert.</p>
<p>Jetzt möchte ich aber eine DLL erstellen wo diese Klasse ebenfalls vorkommt. Alle anderen Klassen funktionieren nach dem Prinzip:</p>
<pre><code class="language-cpp">#include &quot;QCameraSMXGlobal.h&quot;
class QSMXCAMERA_EXPORT QCameraSMX : public QObject
</code></pre>
<p>Nur in CameraImage kann ich das nicht einbauen, weil die Definition 'QSMXCAMERA_EXPORT' in einem anderen Projekt natürlich anders heißt.</p>
<p>Welche Möglichkeiten bieten sich an das zu lösen? Wenn irgendwie möglich innerhalb von C++ allenfalls der IDE (QtCreator).</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/270869/verwalten-von-__declspec-bei-externen-dateien</link><generator>RSS for Node</generator><lastBuildDate>Sat, 29 Aug 2026 22:12:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/270869.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 19 Jul 2010 15:20:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to verwalten von __declspec bei externen Dateien on Mon, 19 Jul 2010 15:20:57 GMT]]></title><description><![CDATA[<p>Ich habe ein logisches Problem mit den __declspec Definitionen.</p>
<p>Und zwar habe ich eine Klasse CameraImage die ich in mehreren Projekten (hier mehrere Kameras unterschiedlicher Hersteller) nutzen möchte. Ich habe daher diese Klasse als svn:external in jedem Projekt in /project/src/include/CameraImage importiert.</p>
<p>Jetzt möchte ich aber eine DLL erstellen wo diese Klasse ebenfalls vorkommt. Alle anderen Klassen funktionieren nach dem Prinzip:</p>
<pre><code class="language-cpp">#include &quot;QCameraSMXGlobal.h&quot;
class QSMXCAMERA_EXPORT QCameraSMX : public QObject
</code></pre>
<p>Nur in CameraImage kann ich das nicht einbauen, weil die Definition 'QSMXCAMERA_EXPORT' in einem anderen Projekt natürlich anders heißt.</p>
<p>Welche Möglichkeiten bieten sich an das zu lösen? Wenn irgendwie möglich innerhalb von C++ allenfalls der IDE (QtCreator).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1928684</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1928684</guid><dc:creator><![CDATA[pospiech]]></dc:creator><pubDate>Mon, 19 Jul 2010 15:20:57 GMT</pubDate></item><item><title><![CDATA[Reply to verwalten von __declspec bei externen Dateien on Mon, 19 Jul 2010 16:03:13 GMT]]></title><description><![CDATA[<p>Jetzt habe ich versucht das mit nur einer header Datei zu lösen, also:</p>
<pre><code class="language-cpp">#ifndef CAMERAIMAGE_H_
#define CAMERAIMAGE_H_

// for each project using this file this needs to be defined
#ifdef QSMXCAMERA_EXPORT
    #define QCAMERAIMAGEEXPORT QSMXCAMERA_EXPORT
#else
    #define QCAMERAIMAGEEXPORT
#endif

class QCAMERAIMAGEEXPORT QCameraImage : public QWidget
{
    Q_OBJECT
public:
...
};
</code></pre>
<p>welche nur geladen wir von</p>
<pre><code class="language-cpp">#ifndef QCAMERAWIDGET_H
#define QCAMERAWIDGET_H

// this class is in the project and knows how to define QSMXCAMERA_EXPORT
#include &quot;QCameraSMXGlobal.h&quot;
#include &quot;QCameraImage.h&quot;

class QSMXCAMERA_EXPORT QCameraWidget : public QCameraImage
{
Q_OBJECT
public:
    explicit QCameraWidget(QWidget *parent = 0);

signals:

public slots:

};

#endif // QCAMERAWIDGET_H
</code></pre>
<p>es existiert also keine CameraImage.cpp Datei mehr. Trotzdem wird noch einer QCameraImage.obj gesucht:</p>
<blockquote>
<p>LINK : fatal error LNK1181: Eingabedatei &quot;build\debug\QCameraImage.obj&quot;<br />
kann nicht geöffnet werden.</p>
</blockquote>
<p>worum jetzt das?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1928708</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1928708</guid><dc:creator><![CDATA[pospiech]]></dc:creator><pubDate>Mon, 19 Jul 2010 16:03:13 GMT</pubDate></item></channel></rss>