<?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[Welche Größe hat ein Zeiger auf eine Klasse?]]></title><description><![CDATA[<p>Hi,<br />
ich habe hier einen Code bei dem mein Compiler an ein paar Stellen ein paar Warnungen ausgibt (VC 2003). Die Warnungen treten immer im Bezug mit der Referenzierung auf eine Klasse auf. z.B.</p>
<blockquote>
<p>c:\foo\foo.cpp(xx) : warning C4312: 'Typumwandlung': Konvertierung von 'LONG' in größeren Typ 'myClass *'</p>
</blockquote>
<p>als Ergbenis z.B. von folgendem Aufruf:</p>
<pre><code>myClass		*pThis;
pThis = (myClass*) GetWindowLongPtr( hWnd, GWLP_USERDATA );
</code></pre>
<p>GetWindowLongPtr gibt als Rückgabetyp LONG zurück. Ich verstehe dass mich der Compiler warnen möchte, dass pThis größer ist als LONG, was unter Window 32 bit int unsigned ist. Allerdings verstehe ich nicht, warum die Referenz auf die Klasse größer sein soll als 32Bit. Ich habe einen waschechten 32-Bit Prozessor, mit einem 32-Bit Compiler, warum sollten hier Adressen größer als 32 Bit aufgelöst werden, wenn es theoretisch maximal 4GB RAM geben kann (ich weiss. Sind in wirklichkeit weniger).<br />
Irgendjemand der mit weiterhelfen kann?</p>
<p>mfg Sven</p>
<p>P.S. Alter C Programmierer der seine ersten Erfahrungen in C++ sammelt</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/150558/welche-größe-hat-ein-zeiger-auf-eine-klasse</link><generator>RSS for Node</generator><lastBuildDate>Sat, 05 Sep 2026 18:23:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/150558.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 17 Jun 2006 20:57:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Welche Größe hat ein Zeiger auf eine Klasse? on Sat, 17 Jun 2006 20:57:36 GMT]]></title><description><![CDATA[<p>Hi,<br />
ich habe hier einen Code bei dem mein Compiler an ein paar Stellen ein paar Warnungen ausgibt (VC 2003). Die Warnungen treten immer im Bezug mit der Referenzierung auf eine Klasse auf. z.B.</p>
<blockquote>
<p>c:\foo\foo.cpp(xx) : warning C4312: 'Typumwandlung': Konvertierung von 'LONG' in größeren Typ 'myClass *'</p>
</blockquote>
<p>als Ergbenis z.B. von folgendem Aufruf:</p>
<pre><code>myClass		*pThis;
pThis = (myClass*) GetWindowLongPtr( hWnd, GWLP_USERDATA );
</code></pre>
<p>GetWindowLongPtr gibt als Rückgabetyp LONG zurück. Ich verstehe dass mich der Compiler warnen möchte, dass pThis größer ist als LONG, was unter Window 32 bit int unsigned ist. Allerdings verstehe ich nicht, warum die Referenz auf die Klasse größer sein soll als 32Bit. Ich habe einen waschechten 32-Bit Prozessor, mit einem 32-Bit Compiler, warum sollten hier Adressen größer als 32 Bit aufgelöst werden, wenn es theoretisch maximal 4GB RAM geben kann (ich weiss. Sind in wirklichkeit weniger).<br />
Irgendjemand der mit weiterhelfen kann?</p>
<p>mfg Sven</p>
<p>P.S. Alter C Programmierer der seine ersten Erfahrungen in C++ sammelt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1079703</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1079703</guid><dc:creator><![CDATA[sgergen]]></dc:creator><pubDate>Sat, 17 Jun 2006 20:57:36 GMT</pubDate></item><item><title><![CDATA[Reply to Welche Größe hat ein Zeiger auf eine Klasse? on Sat, 17 Jun 2006 21:13:50 GMT]]></title><description><![CDATA[<p>Ein Zeiger ist <strong>IMMER</strong> (auf einem 32Bit-Rechner) 4 Bytes groß.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1079713</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1079713</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sat, 17 Jun 2006 21:13:50 GMT</pubDate></item><item><title><![CDATA[Reply to Welche Größe hat ein Zeiger auf eine Klasse? on Sat, 17 Jun 2006 21:14:58 GMT]]></title><description><![CDATA[<p>Hm und warum warnt mich dann VC++ 2003 vor dem Datenverlust bei der Konvertierung?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1079715</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1079715</guid><dc:creator><![CDATA[sgergen]]></dc:creator><pubDate>Sat, 17 Jun 2006 21:14:58 GMT</pubDate></item><item><title><![CDATA[Reply to Welche Größe hat ein Zeiger auf eine Klasse? on Sat, 17 Jun 2006 21:48:38 GMT]]></title><description><![CDATA[<p>sgergen schrieb:</p>
<blockquote>
<p>Hm und warum warnt mich dann VC++ 2003 vor dem Datenverlust bei der Konvertierung?</p>
</blockquote>
<p>Hmm, gute Frage...hast du mal probiert den (long)Return-Wert in void* zu casten...was sagt er dann (oder in*)</p>
<p>PS: nur dann <strong>NICHT</strong> verwenden...geht nur um die Warnung!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1079748</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1079748</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sat, 17 Jun 2006 21:48:38 GMT</pubDate></item><item><title><![CDATA[Reply to Welche Größe hat ein Zeiger auf eine Klasse? on Sat, 17 Jun 2006 21:50:43 GMT]]></title><description><![CDATA[<p>Stell mal die 64-Bit Warnungen ab. Kommt die Meldung dann immer noch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1079749</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1079749</guid><dc:creator><![CDATA[helper]]></dc:creator><pubDate>Sat, 17 Jun 2006 21:50:43 GMT</pubDate></item><item><title><![CDATA[Reply to Welche Größe hat ein Zeiger auf eine Klasse? on Sun, 18 Jun 2006 07:39:34 GMT]]></title><description><![CDATA[<p>Thx. Der Compilerschalter /Wp64 wars.<br />
Das ganze wirft allerdings unweigerlich eine neue Frage in mir auf. Die 64 Bit Rechner drüften auch in Homebereich irgendwann zum Standard werden. Seine Programme dann auf das neue System zu portieren dürfte eine Menge Arbeit verursachen wenn man nicht von vornerein ein paar Sachen berücksichtigt hat. Ist es möglich schon jetzt C++ Programme zu schreiben die sich später 1:1 auf einem 64Bit Rechner übersetzten lassen würden? Das ganze könnte meiner Meinung nach nur funktionieren wenn man sich komplett auf ein Framework wie die MFC stützt. Sobald intensiver Gebrauch des W32 SDK ist müsste es ernsthafte Probleme geben. Gibt es irgendwelche Seiten im Netz die sich um diese Problematik kümmern?</p>
<p>Sven</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1079831</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1079831</guid><dc:creator><![CDATA[sgergen]]></dc:creator><pubDate>Sun, 18 Jun 2006 07:39:34 GMT</pubDate></item><item><title><![CDATA[Reply to Welche Größe hat ein Zeiger auf eine Klasse? on Sun, 18 Jun 2006 08:03:28 GMT]]></title><description><![CDATA[<p>in deinem fall ist das nur ne falschmeldung. du benutzt ja schon die funktion die auf 64-bit vorbereitet ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1079835</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1079835</guid><dc:creator><![CDATA[.......]]></dc:creator><pubDate>Sun, 18 Jun 2006 08:03:28 GMT</pubDate></item><item><title><![CDATA[Reply to Welche Größe hat ein Zeiger auf eine Klasse? on Sun, 18 Jun 2006 08:24:01 GMT]]></title><description><![CDATA[<p>CodeFinder schrieb:</p>
<blockquote>
<p>Ein Zeiger ist <strong>IMMER</strong> (auf einem 32Bit-Rechner) 4 Bytes groß.</p>
</blockquote>
<p>Nicht alle...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1079839</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1079839</guid><dc:creator><![CDATA[FireFlow]]></dc:creator><pubDate>Sun, 18 Jun 2006 08:24:01 GMT</pubDate></item><item><title><![CDATA[Reply to Welche Größe hat ein Zeiger auf eine Klasse? on Sun, 18 Jun 2006 09:19:34 GMT]]></title><description><![CDATA[<p><a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/win64/win64/getting_ready_for_64_bit_windows.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/win64/win64/getting_ready_for_64_bit_windows.asp</a><br />
<a href="http://cache-www.intel.com/cd/00/00/01/79/17969_codeclean_r02.pdf" rel="nofollow">http://cache-www.intel.com/cd/00/00/01/79/17969_codeclean_r02.pdf</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1079865</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1079865</guid><dc:creator><![CDATA[..........]]></dc:creator><pubDate>Sun, 18 Jun 2006 09:19:34 GMT</pubDate></item><item><title><![CDATA[Reply to Welche Größe hat ein Zeiger auf eine Klasse? on Sun, 18 Jun 2006 09:36:31 GMT]]></title><description><![CDATA[<p>In C++ gibts auch Zeiger die größer sind als 4Byte, nen tollter Artikel dazu: <a href="http://www.codeproject.com/cpp/FastDelegate.asp" rel="nofollow">http://www.codeproject.com/cpp/FastDelegate.asp</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1079874</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1079874</guid><dc:creator><![CDATA[Dr. Prof]]></dc:creator><pubDate>Sun, 18 Jun 2006 09:36:31 GMT</pubDate></item><item><title><![CDATA[Reply to Welche Größe hat ein Zeiger auf eine Klasse? on Sun, 18 Jun 2006 12:57:39 GMT]]></title><description><![CDATA[<p>Dein Problem liegt vermutlich an deinem Platform SDK, denn GetWindowLongPtr gibt nicht LONG, sondern LONG_PTR zurück. Dann gibt's auch keine Warnungen. Habe hier selbst ein Platform SDK von 2005, und da wird LONG_PTR nur bei _WIN64 zurückgegeben. Was aber eigentlich immer so sein sollte, egal ob _WIN32 oder _WIN64. Ich würde die 64 Bit Kompatibilitätsüberwachung auf jeden Fall eingeschaltet lassen und den Rückgabewert erst nach LONG_PTR casten.</p>
<pre><code class="language-cpp">pThis = (myClass*) (LONG_PTR) GetWindowLongPtr( hWnd, GWLP_USERDATA );
</code></pre>
<p>Sieht zwar etwas seltsam aus, sollte aber problemlos laufen. Wobei ich als C++ Programmierer natürlich andere Casts verwenden würde. <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/1080006</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1080006</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Sun, 18 Jun 2006 12:57:39 GMT</pubDate></item><item><title><![CDATA[Reply to Welche Größe hat ein Zeiger auf eine Klasse? on Sun, 18 Jun 2006 15:00:27 GMT]]></title><description><![CDATA[<p>Dann hab ich nochmal ne Frage:<br />
Aber Zeiger sind doch auf 64Bit Systemen größer (bzog. auf den Speicherverbrauch) als<br />
auf 32Bit Systemen, oder ?</p>
<p>...Wieviel ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1080039</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1080039</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sun, 18 Jun 2006 15:00:27 GMT</pubDate></item><item><title><![CDATA[Reply to Welche Größe hat ein Zeiger auf eine Klasse? on Sun, 18 Jun 2006 15:02:33 GMT]]></title><description><![CDATA[<p>CodeFinder schrieb:</p>
<blockquote>
<p>Dann hab ich nochmal ne Frage:<br />
Aber Zeiger sind doch auf 64Bit Systemen größer (bzog. auf den Speicherverbrauch) als<br />
auf 32Bit Systemen, oder ?</p>
<p>...Wieviel ?</p>
</blockquote>
<p>LONG_PTR ist ja auch nicht immer gleich groß, sondern groß genug den Zeiger zu speichern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1080040</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1080040</guid><dc:creator><![CDATA[dragon90#]]></dc:creator><pubDate>Sun, 18 Jun 2006 15:02:33 GMT</pubDate></item><item><title><![CDATA[Reply to Welche Größe hat ein Zeiger auf eine Klasse? on Sun, 18 Jun 2006 17:28:49 GMT]]></title><description><![CDATA[<p>CodeFinder schrieb:</p>
<blockquote>
<p>Dann hab ich nochmal ne Frage:<br />
Aber Zeiger sind doch auf 64Bit Systemen größer (bzog. auf den Speicherverbrauch) als<br />
auf 32Bit Systemen, oder ?</p>
<p>...Wieviel ?</p>
</blockquote>
<p>Datenzeiger sind auf gängigen 64-bit Systemen doppelt so groß wie auf gängigen 32-bit Systemen, nämlich 8-Byte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1080139</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1080139</guid><dc:creator><![CDATA[HumeSikkins]]></dc:creator><pubDate>Sun, 18 Jun 2006 17:28:49 GMT</pubDate></item><item><title><![CDATA[Reply to Welche Größe hat ein Zeiger auf eine Klasse? on Sun, 18 Jun 2006 17:49:32 GMT]]></title><description><![CDATA[<p>Hm ok danke erstmal...</p>
<p>HumeSikkins schrieb:</p>
<blockquote>
<p>CodeFinder schrieb:</p>
<blockquote>
<p>Dann hab ich nochmal ne Frage:<br />
Aber Zeiger sind doch auf 64Bit Systemen größer (bzog. auf den Speicherverbrauch) als<br />
auf 32Bit Systemen, oder ?</p>
<p>...Wieviel ?</p>
</blockquote>
<p>Datenzeiger sind auf gängigen 64-bit Systemen doppelt so groß wie auf gängigen 32-bit Systemen, nämlich 8-Byte.</p>
</blockquote>
<p>Hm...daraus kann man doch dann schließen <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="💡"
    /> , das auf einem 32bit System, Zeiger 4 Byte verbrauchen...<br />
Warum stimmt das:</p>
<p>CodeFinder schrieb:</p>
<blockquote>
<p>Ein Zeiger ist <strong>IMMER</strong> (auf einem 32Bit-Rechner) 4 Bytes groß.</p>
</blockquote>
<p>dann nicht ?</p>
<p>Danke schon mal für die Aufklärung <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/1080150</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1080150</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sun, 18 Jun 2006 17:49:32 GMT</pubDate></item><item><title><![CDATA[Reply to Welche Größe hat ein Zeiger auf eine Klasse? on Sun, 18 Jun 2006 17:56:37 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/2813">@groovemaster</a>:<br />
Der Code lässt sich in der Tat problemlos ohne Warnungen kompilieren. Und hierbei sehe ich auch keinerlei Probleme beim Umstieg auf 64 Bit. Was mich eher zum grübeln bringt ist:</p>
<pre><code class="language-cpp">SetWindowLongPtr(hWnd,GWLP_USERDATA,(LONG)pThis);
</code></pre>
<p>Caste ich hier impliziet</p>
<pre><code class="language-cpp">(LONG)(LONG_PTR)pThis
</code></pre>
<p>würde ich hier bei der 64Bit Version Probleme bekommen. da ich den LONG_PTR in einen LONG kovertiert habe, was auch nach der neuen SDK immer noch 32Bit sein müssten. Bei</p>
<pre><code class="language-cpp">(LONG_PTR)pThis
</code></pre>
<p>wäre das Statement zwar korrekt, allerdings kann ich es nicht ohne Warunungen mit meinem 32Bit Compiler ausführen.</p>
<p>Sven</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1080161</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1080161</guid><dc:creator><![CDATA[sgergen]]></dc:creator><pubDate>Sun, 18 Jun 2006 17:56:37 GMT</pubDate></item><item><title><![CDATA[Reply to Welche Größe hat ein Zeiger auf eine Klasse? on Sun, 18 Jun 2006 19:23:50 GMT]]></title><description><![CDATA[<p>CodeFinder schrieb:</p>
<blockquote>
<p>Hm ok danke erstmal...</p>
<p>HumeSikkins schrieb:</p>
<blockquote>
<p>CodeFinder schrieb:</p>
<blockquote>
<p>Dann hab ich nochmal ne Frage:<br />
Aber Zeiger sind doch auf 64Bit Systemen größer (bzog. auf den Speicherverbrauch) als<br />
auf 32Bit Systemen, oder ?</p>
<p>...Wieviel ?</p>
</blockquote>
<p>Datenzeiger sind auf gängigen 64-bit Systemen doppelt so groß wie auf gängigen 32-bit Systemen, nämlich 8-Byte.</p>
</blockquote>
<p>Hm...daraus kann man doch dann schließen <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="💡"
    /> , das auf einem 32bit System, Zeiger 4 Byte verbrauchen...<br />
Warum stimmt das:</p>
<p>CodeFinder schrieb:</p>
<blockquote>
<p>Ein Zeiger ist <strong>IMMER</strong> (auf einem 32Bit-Rechner) 4 Bytes groß.</p>
</blockquote>
<p>dann nicht ?</p>
</blockquote>
<p>Es gibt einen Unterschied zwischen Datenzeigern und Funktionszeigern. Datenzeiger (Zeiger auf einen Typen wie int, char, FooBar) sind auf gängigen 32-bit Systemen *immer* 4-Byte groß und Konvertierungen zwischen dem Standard-Integer (int bzw. long) und einem solchen Zeiger sind hier gefahrlos möglich.</p>
<p>Für Funktionszeiger (dazu gehören insbesondere auch Memberfunktionszeiger) hingegen muss das nicht gelten. Normale Funktionszeiger sind in der Regel zwar auch nur Adressen (und damit äquivalent zu Datenzeigern), der Standard schreibt dies aber nicht vor. Spätestens bei Memberfunktionszeigern wird es allerdings komplizierter, da hier zusätzliche Informationen gespeichert werden müssen (z.B. wenn virtuelle Funktionen ins Spiel kommen).</p>
<p>Btw: Die Grütze die der VC 6.0 bei Memberfunktionszeigern macht (siehe dazu den von Dr. Prof verlinkten Artikel) ist allerdings nicht Standard-Konform.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1080220</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1080220</guid><dc:creator><![CDATA[HumeSikkins]]></dc:creator><pubDate>Sun, 18 Jun 2006 19:23:50 GMT</pubDate></item><item><title><![CDATA[Reply to Welche Größe hat ein Zeiger auf eine Klasse? on Sun, 18 Jun 2006 21:30:04 GMT]]></title><description><![CDATA[<p>LOL, ok dann danke ich dir mal für deine Ausführungen <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/1080291</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1080291</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sun, 18 Jun 2006 21:30:04 GMT</pubDate></item><item><title><![CDATA[Reply to Welche Größe hat ein Zeiger auf eine Klasse? on Sun, 18 Jun 2006 22:13:10 GMT]]></title><description><![CDATA[<p>sgergen schrieb:</p>
<blockquote>
<p>Was mich eher zum grübeln bringt ist:</p>
<pre><code class="language-cpp">SetWindowLongPtr(hWnd,GWLP_USERDATA,(LONG)pThis);
</code></pre>
<p>Caste ich hier impliziet</p>
<pre><code class="language-cpp">(LONG)(LONG_PTR)pThis
</code></pre>
<p>würde ich hier bei der 64Bit Version Probleme bekommen. da ich den LONG_PTR in einen LONG kovertiert habe, was auch nach der neuen SDK immer noch 32Bit sein müssten.</p>
</blockquote>
<p>Hmmm...habe jetzt noch mal in meinem 2005er SDK nachgeschaut, und da ist GetWindowLongPtr/SetWindowLongPtr tatsächlich nur ein define auf GetWindowLong/SetWindowLong. Das ist meiner Meinung nach ein Bug, da dadurch die Signatur verfälscht wird. Mich würde mal interessieren, was Jochen dazu meint. Wie auch immer, erstmal könntest du versuchen, ein aktuelles Platform SDK zu installieren. Evtl. ist das dort behoben. Sollte das nicht helfen, hätte ich als zweite Möglichkeit noch Folgendes anzubieten:</p>
<pre><code class="language-cpp">#ifdef GetWindowLongPtr
    #undef GetWindowLongPtr
    LONG_PTR GetWindowLongPtr(HWND hWnd, int nIndex);
#endif

#ifdef SetWindowLongPtr
    #undef SetWindowLongPtr
    LONG_PTR SetWindowLongPtr(HWND hWnd, int nIndex, LONG_PTR dwNewLong);
#endif
</code></pre>
<p>Das schreibst du dann _nachdem_ &lt;windows.h&gt; eingebunden wurde, und _bevor_ du die Funktionen aufrufst.<br />
Bin zwar kein Freund von solchen Hacks, momentan würden mir aber nur Lösungen einfallen, die mir noch unsympathischer wären.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1080307</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1080307</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Sun, 18 Jun 2006 22:13:10 GMT</pubDate></item></channel></rss>