<?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[Unterschied zwischen WinMain und _tWinMain?]]></title><description><![CDATA[<p>Huhu!<br />
Ich bin heute endlich vom uralten Visual Studio 6.0 auf das neue 8.0 umgestiegen.</p>
<p>Neben vielen nützlichen tollen features fiel mir gleich auf, dass beim Erstellen eines Windows programmes ein _t vor der main funktion steht. (Bei konsolenprogrammen _tmain bei WinAPI programmen _tWinMain).</p>
<p>Entferne ich das _t bei einem Konsolenprogramm, lässt es sich trotzdem normal kompilieren. Bei einem WinAPI programm erhalte ich die Fehlermeldung, dass das Überladen von WinMain nicht möglich sei. (Was sich nach ändern von LPTSTR lpCmdLine in LPSTR lpCmdLine beheben lässt)</p>
<p>Ist zwar nur ne Kleinigkeit mit der ich Leben kann aber was soll das? Was hat sich Microsoft dabei gedacht?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/177379/unterschied-zwischen-winmain-und-_twinmain</link><generator>RSS for Node</generator><lastBuildDate>Sat, 27 Jun 2026 01:16:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/177379.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 30 Mar 2007 17:15:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Unterschied zwischen WinMain und _tWinMain? on Fri, 30 Mar 2007 17:15:38 GMT]]></title><description><![CDATA[<p>Huhu!<br />
Ich bin heute endlich vom uralten Visual Studio 6.0 auf das neue 8.0 umgestiegen.</p>
<p>Neben vielen nützlichen tollen features fiel mir gleich auf, dass beim Erstellen eines Windows programmes ein _t vor der main funktion steht. (Bei konsolenprogrammen _tmain bei WinAPI programmen _tWinMain).</p>
<p>Entferne ich das _t bei einem Konsolenprogramm, lässt es sich trotzdem normal kompilieren. Bei einem WinAPI programm erhalte ich die Fehlermeldung, dass das Überladen von WinMain nicht möglich sei. (Was sich nach ändern von LPTSTR lpCmdLine in LPSTR lpCmdLine beheben lässt)</p>
<p>Ist zwar nur ne Kleinigkeit mit der ich Leben kann aber was soll das? Was hat sich Microsoft dabei gedacht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1256197</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1256197</guid><dc:creator><![CDATA[*ThePro*]]></dc:creator><pubDate>Fri, 30 Mar 2007 17:15:38 GMT</pubDate></item><item><title><![CDATA[Reply to Unterschied zwischen WinMain und _tWinMain? on Fri, 30 Mar 2007 17:27:46 GMT]]></title><description><![CDATA[<p>Das sind *eigene* (also nur in MS-Compilern unterstützte) Zeichensatz unabhängige Versionen dieser Einsprungpunkt-Funktionen.</p>
<p>Damit kannst Du (bei <em>_tWinMain</em> beispielweise) den Command-Line-String (vorletzter Parameter) direkt verwenden, da dieser einen Zeichensatz unabhängigen Typ hat ( <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> <em>LP<strong>T</strong>STR</em>). Bei <em>_tmain</em> ergibt sich das gleiche Szenario. Das <strong>t</strong> steht dabei eigentlich für <strong>T</strong>CHAR. Der Unterstrich bedeutet, dass es nichts 'offizielles' ist <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /> .</p>
<blockquote>
<p>Bei einem WinAPI programm erhalte ich die Fehlermeldung, dass das Überladen von WinMain nicht möglich sei. (Was sich nach ändern von LPTSTR lpCmdLine in LPSTR lpCmdLine beheben lässt)</p>
</blockquote>
<p>Was daran liegt das die Funktion WinMain/_tWinMain/main/_tmain eine bestimmte festgelegte Sigantur hat, deswegen die Fehlermeldung. Da LPSTR als char* und LPTSTR entweder als wchar_t* (UNICODE) oder als char* (ANSI) definiert ist, wird hier die Sigantur implizit durch den Compiler geändert, die dann nicht mehr passt. Bei _tWinMain muss man also auch LPTSTR verwenden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f4a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--light_bulb"
      title=":bulb:"
      alt="💡"
    /> .</p>
<p>Hoffe das war verständlich <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="😉"
    /> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1256202</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1256202</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Fri, 30 Mar 2007 17:27:46 GMT</pubDate></item></channel></rss>