<?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[linkerfehler bei simplem WinAPI program]]></title><description><![CDATA[<p>hallo leute,</p>
<p>ich bin gerade dabei mich in die WinAPI einzuarbeiten und bin jetzt aber bei MS VS 2005 auf ein problem gestossen. ich kann mit dem datentyp LPCTSTR nix anfangen. hab im internet rausgefunden das das ein wchar_t* ist aber auch der cast hat anfangs nicht so richtig geklappt. mit Hilfe des Makros TEXT(&quot;c-string&quot;) oder per reinterpret_cast&lt;wchar_t*&gt;(&quot;c-string&quot;) hab ichs hinbekommen, weiss aber nicht ob das die richtige lösung ist, da ich jetzt einen linkerfehler erhalte. ich habe das programm mal auf den fehler reduziert:</p>
<pre><code class="language-cpp">#define STRICT
#include &lt;windows.h&gt;

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    PSTR szCmdLine, int iCmdShow)
{
	MessageBox(0, TEXT(&quot;ede&quot;), TEXT(&quot;ode&quot;), MB_OKCANCEL);
}
</code></pre>
<p>hier noch der fehler:</p>
<p>MS VS 2005 schrieb:</p>
<blockquote>
<p>1&gt;main.obj : error LNK2028: Nicht aufgelöstes Token (0A000029) &quot;&quot;extern &quot;C&quot; int __stdcall MessageBoxW(struct HWND__ *,wchar_t const *,wchar_t const *,unsigned int)&quot; (?MessageBoxW@@$$J216YGHPAUHWND__@@PB_W1I@Z)&quot;, auf das in Funktion &quot;&quot;extern &quot;C&quot; int __cdecl MessageBox(struct HWND__ *,wchar_t const *,wchar_t const *,unsigned int)&quot; (?MessageBox@@$$J0YAHPAUHWND__@@PB_W1I@Z)&quot; verwiesen wird.<br />
1&gt;main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol &quot;&quot;extern &quot;C&quot; int __stdcall MessageBoxW(struct HWND__ *,wchar_t const *,wchar_t const *,unsigned int)&quot; (?MessageBoxW@@$$J216YGHPAUHWND__@@PB_W1I@Z)&quot; in Funktion &quot;&quot;extern &quot;C&quot; int __cdecl MessageBox(struct HWND__ *,wchar_t const *,wchar_t const *,unsigned int)&quot; (?MessageBox@@$$J0YAHPAUHWND__@@PB_W1I@Z)&quot;.<br />
1&gt;C:\Dokumente und Einstellungen\Ede\Eigene Dateien\Visual Studio 2005\Projects\winapi\Debug\winapi.exe : fatal error LNK1120: 2 nicht aufgelöste externe Verweise.</p>
</blockquote>
<p>ich habe leider keine ahnung was das bedeutet deshalb hab ich mich ans forum gewandt, vielen dank schonmal</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/176728/linkerfehler-bei-simplem-winapi-program</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Jul 2026 17:34:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/176728.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 24 Mar 2007 09:47:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to linkerfehler bei simplem WinAPI program on Sat, 24 Mar 2007 09:47:28 GMT]]></title><description><![CDATA[<p>hallo leute,</p>
<p>ich bin gerade dabei mich in die WinAPI einzuarbeiten und bin jetzt aber bei MS VS 2005 auf ein problem gestossen. ich kann mit dem datentyp LPCTSTR nix anfangen. hab im internet rausgefunden das das ein wchar_t* ist aber auch der cast hat anfangs nicht so richtig geklappt. mit Hilfe des Makros TEXT(&quot;c-string&quot;) oder per reinterpret_cast&lt;wchar_t*&gt;(&quot;c-string&quot;) hab ichs hinbekommen, weiss aber nicht ob das die richtige lösung ist, da ich jetzt einen linkerfehler erhalte. ich habe das programm mal auf den fehler reduziert:</p>
<pre><code class="language-cpp">#define STRICT
#include &lt;windows.h&gt;

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    PSTR szCmdLine, int iCmdShow)
{
	MessageBox(0, TEXT(&quot;ede&quot;), TEXT(&quot;ode&quot;), MB_OKCANCEL);
}
</code></pre>
<p>hier noch der fehler:</p>
<p>MS VS 2005 schrieb:</p>
<blockquote>
<p>1&gt;main.obj : error LNK2028: Nicht aufgelöstes Token (0A000029) &quot;&quot;extern &quot;C&quot; int __stdcall MessageBoxW(struct HWND__ *,wchar_t const *,wchar_t const *,unsigned int)&quot; (?MessageBoxW@@$$J216YGHPAUHWND__@@PB_W1I@Z)&quot;, auf das in Funktion &quot;&quot;extern &quot;C&quot; int __cdecl MessageBox(struct HWND__ *,wchar_t const *,wchar_t const *,unsigned int)&quot; (?MessageBox@@$$J0YAHPAUHWND__@@PB_W1I@Z)&quot; verwiesen wird.<br />
1&gt;main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol &quot;&quot;extern &quot;C&quot; int __stdcall MessageBoxW(struct HWND__ *,wchar_t const *,wchar_t const *,unsigned int)&quot; (?MessageBoxW@@$$J216YGHPAUHWND__@@PB_W1I@Z)&quot; in Funktion &quot;&quot;extern &quot;C&quot; int __cdecl MessageBox(struct HWND__ *,wchar_t const *,wchar_t const *,unsigned int)&quot; (?MessageBox@@$$J0YAHPAUHWND__@@PB_W1I@Z)&quot;.<br />
1&gt;C:\Dokumente und Einstellungen\Ede\Eigene Dateien\Visual Studio 2005\Projects\winapi\Debug\winapi.exe : fatal error LNK1120: 2 nicht aufgelöste externe Verweise.</p>
</blockquote>
<p>ich habe leider keine ahnung was das bedeutet deshalb hab ich mich ans forum gewandt, vielen dank schonmal</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251520</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251520</guid><dc:creator><![CDATA[jimmy3]]></dc:creator><pubDate>Sat, 24 Mar 2007 09:47:28 GMT</pubDate></item><item><title><![CDATA[Reply to linkerfehler bei simplem WinAPI program on Sat, 24 Mar 2007 10:36:24 GMT]]></title><description><![CDATA[<p>Hmm ... LPCTSTR ist kein wchar_t o.O</p>
<pre><code class="language-cpp">typedef LPCTSTR const TCHAR*;
</code></pre>
<p>trifft es wohl eher ... und TCHAR ist, wenn UNICODE aktiviert ist wchar_t und sonnst char.</p>
<p>Das TEXT-Macro setzt halt, wenn es UNICODE ist, noch ein L vor deinen in den Klammern stehenden Text.</p>
<p>Aja und deine Linkermeldung müsste wegen user32.lib kommen ... aber guck doch selbst in der MSDN nach.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251530</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251530</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sat, 24 Mar 2007 10:36:24 GMT</pubDate></item><item><title><![CDATA[Reply to linkerfehler bei simplem WinAPI program on Sat, 24 Mar 2007 10:36:50 GMT]]></title><description><![CDATA[<p>LPCTSTR ist const TCHAR*. Was TCHAR genau bedeutet, da solltest du dir mal die Dokumentation durchlesen. Kurz gesagt, es ist ein Kompatibilitätstyp für ANSI/Unicode. Bei einem Unicode Kompilat ist der Grundtyp für Zeichen wchar_t, ansonsten char.<br />
So wie du es mit TEXT gemacht hast, ist es richtig. Casts sind hier fehl am Platz. Alternativ kannst du auch _T aus &lt;tchar.h&gt; verwenden, macht im Grunde das gleiche wie TEXT.<br />
Deine Linkerfehler rühren daher, dass du dem Linker nicht die notwendigen Bibliotheken zur Verfügung gestellt hast. Der muss ja wissen, wo die verwendeten Funktionen, im Beispiel MessageBox (respektive MessageBoxA/MessageBoxW), zu finden sind. Welche Bibliothek das für jede Funktion ist, kannst du in der Dokumentation nachlesen. Hier wäre das user32.lib. Den Namen dieser Datei fügst du den Projekteinstellungen unter <em>Linker <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="➡"
    /> Input <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="➡"
    /> Additional Dependencies</em> hinzu.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251531</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251531</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Sat, 24 Mar 2007 10:36:50 GMT</pubDate></item><item><title><![CDATA[Reply to linkerfehler bei simplem WinAPI program on Sat, 24 Mar 2007 13:57:53 GMT]]></title><description><![CDATA[<p>ok besten dank an euch beide, ihr habt mir damit wirklich weitergeholfen, jetzt klappts <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251634</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251634</guid><dc:creator><![CDATA[jimmy3]]></dc:creator><pubDate>Sat, 24 Mar 2007 13:57:53 GMT</pubDate></item></channel></rss>