<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Freak-und-Informatiker &#187; C++ Standard</title>
	<atom:link href="http://www.freak-und-informatiker.de/tag/c-standard/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.freak-und-informatiker.de</link>
	<description>Debugger sind was für Memmen! Echte Männer kompilieren direkt auf die Master CD ...</description>
	<lastBuildDate>Wed, 29 Sep 2010 16:00:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Argumente in main vs WinMain</title>
		<link>http://www.freak-und-informatiker.de/2008/07/26/argumente-in-main-vs-winmain/</link>
		<comments>http://www.freak-und-informatiker.de/2008/07/26/argumente-in-main-vs-winmain/#comments</comments>
		<pubDate>Sat, 26 Jul 2008 10:46:56 +0000</pubDate>
		<dc:creator>Marcus</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[C++ Standard]]></category>
		<category><![CDATA[Parameter]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.freak-und-informatiker.de/?p=742</guid>
		<description><![CDATA[Windows macht Dinge anders. Das ist bekannt und ich bin trotzdem wieder mal reingefallen &#8230; Standard C++ definiert die bekannte main() Funktion. int main&#40;int argc, char** argv&#41; Die Windows spezifische Version schaut so aus: int WINAPI WinMain&#40;HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow&#41; Ich werde hier nicht weiter auf die Unterschiede bezüglich hPrevInstance und [...]]]></description>
			<content:encoded><![CDATA[<p>Windows macht Dinge anders. Das ist bekannt und ich bin trotzdem wieder mal reingefallen &#8230;</p>
<p>Standard C++ definiert die bekannte main() Funktion.</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">int</span> main<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> argc, <span style="color: #0000ff;">char</span><span style="color: #000040;">**</span> argv<span style="color: #008000;">&#41;</span></pre></div></div>

<p>Die Windows spezifische Version schaut so aus:</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">int</span> WINAPI WinMain<span style="color: #008000;">&#40;</span>HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   LPSTR lpCmdLine,
                   <span style="color: #0000ff;">int</span> nCmdShow<span style="color: #008000;">&#41;</span></pre></div></div>

<p>Ich werde hier nicht weiter auf die Unterschiede bezüglich hPrevInstance und hInstance eingehen, da weiß Google besser bescheid. Stattdessen gehe ich auf lpCmdLine und nCmdShow ein.</p>
<p>Wer sich an Dinge wie die STL gewöhnt, vermutet immer gerne mal wieder, dass Dinge überall gleich funktionieren. Sollten sie zwar auch, hier tun sie es aber nicht!</p>
<p>Ich ging in meiner Naivität davon aus, dass nCmdShow die Entsprechung für argc und lpCmdLine die Entsprechung von argv wäre. NEIN! lpCmdLine schmeisst einen Teil der Vorteile von argv weg: Es fügt die Kommandozeilen Parameter in einem einzigen String zusammen. Während argv also eher wie ein Array aus char* zu handhaben ist, wobei der Index 0 dem Pfad zum Programm entspricht, ist lpCmdLine ein einziger String aller Parameter ohne den Pfad zum Programm.</p>
<p>Gegenübergestellt schaut das so aus:</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;">Kommandozeile<span style="color: #008080;">:</span> <span style="color: #000040;">/</span>usr<span style="color: #000040;">/</span>bin<span style="color: #000040;">/</span>foo <span style="color: #000040;">-</span>key value <span style="color: #000040;">-</span>foo <span style="color: #FF0000;">&quot;foo bar&quot;</span>
lpCmdLine<span style="color: #008080;">:</span> <span style="color: #FF0000;">&quot;-key value -foo <span style="color: #000099; font-weight: bold;">\&quot;</span>foo bar<span style="color: #000099; font-weight: bold;">\&quot;</span>&quot;</span>
argv<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">:</span> <span style="color: #FF0000;">&quot;/usr/bin/foo&quot;</span>
argv<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">:</span> <span style="color: #FF0000;">&quot;-key&quot;</span>
argv<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">2</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">:</span> <span style="color: #FF0000;">&quot;value&quot;</span>
argv<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">3</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">:</span> <span style="color: #FF0000;">&quot;-foo&quot;</span>
argv<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">4</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">:</span> <span style="color: #FF0000;">&quot;foo bar&quot;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.freak-und-informatiker.de/2008/07/26/argumente-in-main-vs-winmain/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>delete und NULL Zeiger &#8230;</title>
		<link>http://www.freak-und-informatiker.de/2008/07/25/delete-und-null-zeiger/</link>
		<comments>http://www.freak-und-informatiker.de/2008/07/25/delete-und-null-zeiger/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 12:21:12 +0000</pubDate>
		<dc:creator>Marcus</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[C++ Standard]]></category>
		<category><![CDATA[Delete]]></category>

		<guid isPermaLink="false">http://www.freak-und-informatiker.de/?p=739</guid>
		<description><![CDATA[&#8230; sind absolut valides C++! Wirklich! Konstrukte wie dieses hier sind tatsächlich überflüssig &#8230; if &#40;pointer&#41; &#123; delete pointer; pointer = NULL; &#125; Ein einfaches delete und auf NULL setzen tuts auch]]></description>
			<content:encoded><![CDATA[<p>&#8230; sind absolut valides C++! Wirklich! Konstrukte wie dieses hier sind tatsächlich überflüssig &#8230;</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>pointer<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
    <span style="color: #0000dd;">delete</span> pointer<span style="color: #008080;">;</span>
    pointer <span style="color: #000080;">=</span> <span style="color: #0000ff;">NULL</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

<p>Ein einfaches delete und auf NULL setzen tuts auch <img src='http://www.freak-und-informatiker.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.freak-und-informatiker.de/2008/07/25/delete-und-null-zeiger/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

