<?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[Kompilierdefines]]></title><description><![CDATA[<p>hi,</p>
<p>ich habe heute in einer Datei defines der Art</p>
<pre><code class="language-cpp">#ifdef DEBUG
Breakpoint();
MessageBox();
#else
cout &lt;&lt; &quot;Error\n&quot;;
#endif

oder

#ifdef WIN32
#include &lt;windows.h&gt;
...
#else
...
#endif
</code></pre>
<p>gesehen. Ist mehr Pseudecode also nicht wundern <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Jetzt stellt sich mir nur die Frage ob es Makros gibt mit denen man abfragen kann, ob der Compiler im Debug-Modus läuft und ob es eine Win32-Anwendung ist oder ob das einfach in eine config.cpp reingeschrieben wird. Also wenn man eine Win32-Anwendung im Debugmodus kompilieren will folgendes:</p>
<pre><code class="language-cpp">#define DEBUG
#define WIN32
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/177514/kompilierdefines</link><generator>RSS for Node</generator><lastBuildDate>Sun, 20 Sep 2026 03:14:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/177514.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 01 Apr 2007 10:51:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Kompilierdefines on Sun, 01 Apr 2007 10:52:56 GMT]]></title><description><![CDATA[<p>hi,</p>
<p>ich habe heute in einer Datei defines der Art</p>
<pre><code class="language-cpp">#ifdef DEBUG
Breakpoint();
MessageBox();
#else
cout &lt;&lt; &quot;Error\n&quot;;
#endif

oder

#ifdef WIN32
#include &lt;windows.h&gt;
...
#else
...
#endif
</code></pre>
<p>gesehen. Ist mehr Pseudecode also nicht wundern <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Jetzt stellt sich mir nur die Frage ob es Makros gibt mit denen man abfragen kann, ob der Compiler im Debug-Modus läuft und ob es eine Win32-Anwendung ist oder ob das einfach in eine config.cpp reingeschrieben wird. Also wenn man eine Win32-Anwendung im Debugmodus kompilieren will folgendes:</p>
<pre><code class="language-cpp">#define DEBUG
#define WIN32
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1257050</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1257050</guid><dc:creator><![CDATA[banshee]]></dc:creator><pubDate>Sun, 01 Apr 2007 10:52:56 GMT</pubDate></item><item><title><![CDATA[Reply to Kompilierdefines on Sun, 01 Apr 2007 11:14:06 GMT]]></title><description><![CDATA[<p>Hi !</p>
<p>Kommt auf den Compiler an. Beim Visual C++ kann man das unter<br />
Erstellen/Aktive Konfiguration festlegen/<br />
einstellen.<br />
Bei Kommandozeilen-orientierten Compilern übergibt man da Parameter wie z.B.</p>
<p>gcc main.c --debug</p>
<p>Gruß,<br />
p.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1257065</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1257065</guid><dc:creator><![CDATA[proggingmania]]></dc:creator><pubDate>Sun, 01 Apr 2007 11:14:06 GMT</pubDate></item><item><title><![CDATA[Reply to Kompilierdefines on Sun, 01 Apr 2007 12:10:10 GMT]]></title><description><![CDATA[<p>hm ich glaub ich hab mich etwas undeutlich ausgedrückt. also zunächst mal benutze ich visual c++ express.</p>
<p>und ich hab jetzt folgenden code:</p>
<pre><code class="language-cpp">#ifdef DEBUG
A();
#else
B();

#ifdef WIN32
C();
#else
D();
</code></pre>
<p>er soll also den richtigen code ausführen, abhängig davon ob er im debug modus is/als win32 anwendung läuft. das makro debug kennt er bei mir so nicht, das musste ich also selber setzen. aber wenn ich ein #define WIN32 einfüge erzählt er mir was von redefinition, also das scheint es doch schon zu geben.</p>
<p>kurzum: wie man in den debug/release modus wechselt weiß ich, doch wie bringe ich dem compiler bei welchen code er abhängig davon ausführen muss?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1257122</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1257122</guid><dc:creator><![CDATA[banshee]]></dc:creator><pubDate>Sun, 01 Apr 2007 12:10:10 GMT</pubDate></item><item><title><![CDATA[Reply to Kompilierdefines on Mon, 02 Apr 2007 06:20:13 GMT]]></title><description><![CDATA[<p>Einige Makros (wie __DATE__, STD_C oder auch WIN32) definiert der Compiler schon von sich aus, da mußt du dich nicht drum kümmern. Andere werden je nach Konfiguration als Compiler-Option vordefiniert (z.B. legt der MS-Compiler ein Makro DEBUG an, wenn du dein Projekt im Debug-Build übersetzt).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1257735</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1257735</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 02 Apr 2007 06:20:13 GMT</pubDate></item><item><title><![CDATA[Reply to Kompilierdefines on Mon, 02 Apr 2007 08:56:59 GMT]]></title><description><![CDATA[<p>#if defined(...) etc. / #ifdef / #ifndef<br />
tudies<br />
#elif<br />
tudas<br />
#else<br />
oderdas<br />
#endif</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1257774</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1257774</guid><dc:creator><![CDATA[Entenwickler]]></dc:creator><pubDate>Mon, 02 Apr 2007 08:56:59 GMT</pubDate></item><item><title><![CDATA[Reply to Kompilierdefines on Mon, 02 Apr 2007 09:33:43 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Einige Makros (wie __DATE__, STD_C oder auch WIN32) definiert der Compiler schon von sich aus</p>
</blockquote>
<p>Das habe ich mir auch gedacht, nur es funktioniert nicht so ganz wie ich mir das vorstelle, weil bei meinem Projekt springt er auch dann in den Codeblock der nach dem #ifdef WIN32 steht wenn es eine Konsolenanwendung ist.</p>
<p>Oder bedeutet das WIN32 nur dass es unter Windows ausgeführt wird?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1257793</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1257793</guid><dc:creator><![CDATA[banshee]]></dc:creator><pubDate>Mon, 02 Apr 2007 09:33:43 GMT</pubDate></item><item><title><![CDATA[Reply to Kompilierdefines on Mon, 02 Apr 2007 09:40:46 GMT]]></title><description><![CDATA[<p>banshee schrieb:</p>
<blockquote>
<p>Oder bedeutet das WIN32 nur dass es unter Windows ausgeführt wird?</p>
</blockquote>
<p>Ja (genauer: Es kennzeichnet, daß du ein 32-Bit-Windows verwendest)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1257800</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1257800</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 02 Apr 2007 09:40:46 GMT</pubDate></item><item><title><![CDATA[Reply to Kompilierdefines on Mon, 02 Apr 2007 09:41:38 GMT]]></title><description><![CDATA[<p>Ich glaube WIN32 ist tatsächlich immer dann definiert wenn der Compiler unter einer Windows(32)-Umgebung läuft. Also auch bei Konsolenprogrammen. Das ist eher dazu nützlich zu entscheiden, ob man jetzt eine Funktion wie getenv() oder doch lieber GetEnvironmentVariable() verwenden sollte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1257801</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1257801</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Mon, 02 Apr 2007 09:41:38 GMT</pubDate></item><item><title><![CDATA[Reply to Kompilierdefines on Mon, 02 Apr 2007 11:33:46 GMT]]></title><description><![CDATA[<pre><code>WIN32
_WINDOWS
_DEBUG
</code></pre>
<p>Dass DEBUG bei dir nicht geht liegt einfach daran dass es DEBUG (ohne Underscore) beim MSVC nicht gibt. Entweder du verwendest also _DEBUG, oder aber NDEBUG (welches dann definiert ist wenn _DEBUG eben NICHT definiert ist).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1257858</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1257858</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 02 Apr 2007 11:33:46 GMT</pubDate></item><item><title><![CDATA[Reply to Kompilierdefines on Mon, 02 Apr 2007 16:57:27 GMT]]></title><description><![CDATA[<p>verwende NDEBUG<br />
heißt soviel wie Nicht-Debug-Modus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1258128</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1258128</guid><dc:creator><![CDATA[bugger]]></dc:creator><pubDate>Mon, 02 Apr 2007 16:57:27 GMT</pubDate></item><item><title><![CDATA[Reply to Kompilierdefines on Tue, 03 Apr 2007 14:01:59 GMT]]></title><description><![CDATA[<p><a href="http://msdn2.microsoft.com/en-us/library/b0084kay.aspx" rel="nofollow">Hier</a> gibt es eine Übersicht, welche Makros der MSC vordefiniert. In deinem Fall wäre _DEBUG und _WIN32 von Bedeutung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1258638</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1258638</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Tue, 03 Apr 2007 14:01:59 GMT</pubDate></item></channel></rss>