<?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[Neudefinition unterschiedliche Basistypen - alternative zu Hack gesucht]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine MFC-Anwendung und verwende eine gelieferte Headerdatei in der leider CTime definiert ist dadurch bekomme ich folgenden Fehler:</p>
<pre><code class="language-cpp">f:header.h(286) : error C2371: 'ATL::CTime': Neudefinition; unterschiedliche Basistypen
        c:\programme\microsoft visual studio 9.0\vc\atlmfc\include\atltime.h(88): Siehe Deklaration von 'ATL::CTime'
</code></pre>
<p>Ich hätte gern eine Lösung die es mir erlaubt die gelieferte Headerdatei zu verwenden ohne sie zu manipulieren.</p>
<p>Mein derzeitiger Ansatz ist es die Headerdatei zu verändern und<br />
<strong>#define CTime BlaBla</strong><br />
zu definieren. Damit kompiliert der Code und Linkt. Jedoch empfinde ich diese Lösung als nicht gut.</p>
<p>1. Kann mir jemand Gefahren aufzeigen die meine aktuelle Lösung birgt ?<br />
2. Kann mir jemand eine Lösung nennen die ohne Manipulation der gelieferten Headerdatei auskommt ?</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/265874/neudefinition-unterschiedliche-basistypen-alternative-zu-hack-gesucht</link><generator>RSS for Node</generator><lastBuildDate>Thu, 27 Aug 2026 10:42:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/265874.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 30 Apr 2010 09:51:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Neudefinition unterschiedliche Basistypen - alternative zu Hack gesucht on Fri, 30 Apr 2010 09:51:30 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine MFC-Anwendung und verwende eine gelieferte Headerdatei in der leider CTime definiert ist dadurch bekomme ich folgenden Fehler:</p>
<pre><code class="language-cpp">f:header.h(286) : error C2371: 'ATL::CTime': Neudefinition; unterschiedliche Basistypen
        c:\programme\microsoft visual studio 9.0\vc\atlmfc\include\atltime.h(88): Siehe Deklaration von 'ATL::CTime'
</code></pre>
<p>Ich hätte gern eine Lösung die es mir erlaubt die gelieferte Headerdatei zu verwenden ohne sie zu manipulieren.</p>
<p>Mein derzeitiger Ansatz ist es die Headerdatei zu verändern und<br />
<strong>#define CTime BlaBla</strong><br />
zu definieren. Damit kompiliert der Code und Linkt. Jedoch empfinde ich diese Lösung als nicht gut.</p>
<p>1. Kann mir jemand Gefahren aufzeigen die meine aktuelle Lösung birgt ?<br />
2. Kann mir jemand eine Lösung nennen die ohne Manipulation der gelieferten Headerdatei auskommt ?</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1890343</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1890343</guid><dc:creator><![CDATA[MBreuer]]></dc:creator><pubDate>Fri, 30 Apr 2010 09:51:30 GMT</pubDate></item><item><title><![CDATA[Reply to Neudefinition unterschiedliche Basistypen - alternative zu Hack gesucht on Fri, 30 Apr 2010 10:12:27 GMT]]></title><description><![CDATA[<p>Ohne Gewähr und bloße Vermutung:</p>
<p>Kommt darauf an, wie die 3rd Party .h Datei CTime definiert. Wenn sie es per #define hast du schlechte Karten und musst wohl oder übel die .h Datei verändern.</p>
<p>Wenn es ein typedef oder eine Definition ist kannst du die #include Anweisung in einen eigenen Namensraum schieben um Neudefinitionen zu vermeiden:</p>
<pre><code class="language-cpp">#ifndef GuardH
#define GuardH

namespace N
{
#include &quot;3rdParty.h&quot;
}
#endif
</code></pre>
<p>Damit dürften alle Definitionen (leider keine #defines) der 3rd Party Library im Namespace N landen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1890351</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1890351</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Fri, 30 Apr 2010 10:12:27 GMT</pubDate></item><item><title><![CDATA[Reply to Neudefinition unterschiedliche Basistypen - alternative zu Hack gesucht on Fri, 30 Apr 2010 10:54:04 GMT]]></title><description><![CDATA[<p>Danke, damit müsste ich dann alle Verwendungen des gelieferten CTime mit Namespace verwenden, das ist bei meinem verbleibenden Code eine Menge Veränderung.</p>
<p>Gibt es weitere Alternativen ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1890363</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1890363</guid><dc:creator><![CDATA[MBreuer]]></dc:creator><pubDate>Fri, 30 Apr 2010 10:54:04 GMT</pubDate></item><item><title><![CDATA[Reply to Neudefinition unterschiedliche Basistypen - alternative zu Hack gesucht on Fri, 30 Apr 2010 12:54:00 GMT]]></title><description><![CDATA[<p>DocShoe schrieb:</p>
<blockquote>
<pre><code class="language-cpp">#ifndef GuardH
#define GuardH

namespace N
{
#include &quot;3rdParty.h&quot;
}
#endif
</code></pre>
</blockquote>
<p>was passiert wohl, wenn <code>3rdParty.h</code> einen standard-header includiert? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /></p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1890419</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1890419</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Fri, 30 Apr 2010 12:54:00 GMT</pubDate></item><item><title><![CDATA[Reply to Neudefinition unterschiedliche Basistypen - alternative zu Hack gesucht on Fri, 30 Apr 2010 12:54:49 GMT]]></title><description><![CDATA[<p>Party?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1890423</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1890423</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Fri, 30 Apr 2010 12:54:49 GMT</pubDate></item><item><title><![CDATA[Reply to Neudefinition unterschiedliche Basistypen - alternative zu Hack gesucht on Fri, 30 Apr 2010 12:58:34 GMT]]></title><description><![CDATA[<p>ziemlich ;o)<br />
hier mal nen bsp.:</p>
<pre><code class="language-cpp">namespace X
{
#include &lt;string&gt;
}

int main()
{
	;
}
</code></pre>
<p>MSVC 9 schrieb:</p>
<blockquote>
<p><em>...</em><br />
1&gt;c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\stdio.h(198) : fatal error C1003: Mehr als 100 Fehler gefunden; Kompilierung wird abgebrochen.</p>
</blockquote>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1890426</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1890426</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Fri, 30 Apr 2010 12:58:34 GMT</pubDate></item><item><title><![CDATA[Reply to Neudefinition unterschiedliche Basistypen - alternative zu Hack gesucht on Tue, 28 Sep 2010 08:55:16 GMT]]></title><description><![CDATA[<p>DocShoe schrieb:</p>
<blockquote>
<p>Ohne Gewähr und bloße Vermutung:</p>
<p>Kommt darauf an, wie die 3rd Party .h Datei CTime definiert. Wenn sie es per #define hast du schlechte Karten und musst wohl oder übel die .h Datei verändern.</p>
<p>Wenn es ein typedef oder eine Definition ist kannst du die #include Anweisung in einen eigenen Namensraum schieben um Neudefinitionen zu vermeiden:</p>
<p>typedef geht nicht. Kann man nur überdefinieren, macht es aber auch nicht leichter.<br />
define lässt sich durch undef beseitigen.</p>
<pre><code class="language-cpp">#ifndef GuardH
#define GuardH

namespace N
{
#include &quot;3rdParty.h&quot;
}
#endif
</code></pre>
<p>Damit dürften alle Definitionen (leider keine #defines) der 3rd Party Library im Namespace N landen.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1958371</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1958371</guid><dc:creator><![CDATA[c-guru]]></dc:creator><pubDate>Tue, 28 Sep 2010 08:55:16 GMT</pubDate></item><item><title><![CDATA[Reply to Neudefinition unterschiedliche Basistypen - alternative zu Hack gesucht on Tue, 28 Sep 2010 10:41:05 GMT]]></title><description><![CDATA[<p>MBreuer schrieb:</p>
<blockquote>
<p>Hallo,</p>
<p>ich habe eine MFC-Anwendung und verwende eine gelieferte Headerdatei in der leider CTime definiert ist dadurch bekomme ich folgenden Fehler:</p>
<pre><code class="language-cpp">f:header.h(286) : error C2371: 'ATL::CTime': Neudefinition; unterschiedliche Basistypen
        c:\programme\microsoft visual studio 9.0\vc\atlmfc\include\atltime.h(88): Siehe Deklaration von 'ATL::CTime'
</code></pre>
</blockquote>
<p>Definiert diese Headerdatei &quot;ihr&quot; CTime denn auch im Namespace ATL? Ich sehe nicht wie da sonst ein Konflikt entstehen könnte. Mehrdeutigkeit (ambiguity) dann später, ja, aber das gäbe ne andere Fehlermeldung.</p>
<p>Könnte ich mir höchstens vorstellen wenn die Headerdatei entweder Code aus der ATL einfach kopiert hat, oder &quot;private&quot; ATL Headers direkt inkludiert.</p>
<p>Poste mal die Stelle wo das zweite CTime definiert wird (&quot;header.h&quot;, Zeile 286).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1958441</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1958441</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 28 Sep 2010 10:41:05 GMT</pubDate></item></channel></rss>