<?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[LONG_PTR und structs]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe daten in einem struct,<br />
dessen inhalt wollte ich nicht unbedingt integerweise in den Speicher des Fensters schreiben,</p>
<p>So kam ich auf die (vlt etwas bekloppte), idee</p>
<pre><code class="language-cpp">SetWindowLongPtr(this-&gt;handle,offset,(LONG_PTR)&amp;(this-&gt;data))
</code></pre>
<p>also einfach die Addresse zu kopieren, das klappt leider nicht so wie ich mir das vorstelle,..</p>
<p>grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/228305/long_ptr-und-structs</link><generator>RSS for Node</generator><lastBuildDate>Fri, 10 Apr 2026 19:22:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/228305.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 26 Nov 2008 16:28:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to LONG_PTR und structs on Wed, 26 Nov 2008 16:28:47 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe daten in einem struct,<br />
dessen inhalt wollte ich nicht unbedingt integerweise in den Speicher des Fensters schreiben,</p>
<p>So kam ich auf die (vlt etwas bekloppte), idee</p>
<pre><code class="language-cpp">SetWindowLongPtr(this-&gt;handle,offset,(LONG_PTR)&amp;(this-&gt;data))
</code></pre>
<p>also einfach die Addresse zu kopieren, das klappt leider nicht so wie ich mir das vorstelle,..</p>
<p>grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1621248</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1621248</guid><dc:creator><![CDATA[zeusosc]]></dc:creator><pubDate>Wed, 26 Nov 2008 16:28:47 GMT</pubDate></item><item><title><![CDATA[Reply to LONG_PTR und structs on Wed, 26 Nov 2008 16:44:58 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>so ganz schlau werde ich aus deinem Beitrag nicht. Ich vermute aber: Du willst dem Fenster beim Start eine Struktur, bzw. Daten, mitgeben?<br />
Einem Dialog oder Fenster kann man über den</p>
<p>cbWndExtra</p>
<p>Member der WndClass-Struktur Bytes reservieren lassen für das Window oder für alle von dieser Klasse abgeleiteten Windows dann via:</p>
<p>int cbClsExtra</p>
<p>Das können Zeiger sein, Strukturen, wie es beliebt. Diese Daten stehen dann unter GWL_USERDATA bzw. DWL_USER (bei Dialogen) zur Verfügung.</p>
<p>Das Verfahren ist eigentlich recht geschickt, wenn man dem Fenster oder Dialog ein paar zusätzliche Startwerte mitgeben will.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1621259</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1621259</guid><dc:creator><![CDATA[CStern]]></dc:creator><pubDate>Wed, 26 Nov 2008 16:44:58 GMT</pubDate></item><item><title><![CDATA[Reply to LONG_PTR und structs on Wed, 26 Nov 2008 17:11:26 GMT]]></title><description><![CDATA[<p>den speicher hatte schon via cbWndExtra reserviert,</p>
<p>das auslesen und schreiben via Get/SetWindowLong funzt auch für jedes window,</p>
<p>Mir gehts explicit um die Verwendung von Get/SetWindowLongPtr und meinen struct,</p>
<p>denn ich will nicht per SetWindowLong jeden Integer einzel übergeben, besonders in dem fall nicht wenn das eine größere struktur ist,...</p>
<p>Sei gegrüßt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1621276</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1621276</guid><dc:creator><![CDATA[zeusosc]]></dc:creator><pubDate>Wed, 26 Nov 2008 17:11:26 GMT</pubDate></item><item><title><![CDATA[Reply to LONG_PTR und structs on Wed, 26 Nov 2008 19:58:30 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>offensichtlich geht das in den 64Bit Bereich. Leider habe ich damit noch keine Erfahrungen, was die WinAPI-Umsetzung dazu macht, da ich weder über einen<br />
64Bit Prozessor noch einem Win32/64 verfüge.<br />
Möge ein mit solch Gerät ausgestatteter Mensch dir posten <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1621396</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1621396</guid><dc:creator><![CDATA[CStern]]></dc:creator><pubDate>Wed, 26 Nov 2008 19:58:30 GMT</pubDate></item><item><title><![CDATA[Reply to LONG_PTR und structs on Wed, 26 Nov 2008 22:30:52 GMT]]></title><description><![CDATA[<p>hehe,</p>
<p>Ich glaube das auch ein paar menschen mit einem win32 system da ahnung habe, aber leider meldet sich da keiner <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>naja,. ich werde weiter suchen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1621484</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1621484</guid><dc:creator><![CDATA[zeusosc]]></dc:creator><pubDate>Wed, 26 Nov 2008 22:30:52 GMT</pubDate></item><item><title><![CDATA[Reply to LONG_PTR und structs on Thu, 27 Nov 2008 07:21:40 GMT]]></title><description><![CDATA[<p>Ich verstehe Deine Frage nicht... WAS klappt denn nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1621548</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1621548</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Thu, 27 Nov 2008 07:21:40 GMT</pubDate></item><item><title><![CDATA[Reply to LONG_PTR und structs on Thu, 27 Nov 2008 10:56:14 GMT]]></title><description><![CDATA[<p>Jo Jochen,</p>
<p>die zuweisung des Pointers vom struct per SetWindowLong<strong>Ptr</strong> an den Speicher vom Fenster.</p>
<p>Wenn ich das mache ist der Speicher leider leer, das ist er nicht wenn ich integerweise per SetWindowLong die daten übergebe.</p>
<p>grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1621676</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1621676</guid><dc:creator><![CDATA[zeusosc]]></dc:creator><pubDate>Thu, 27 Nov 2008 10:56:14 GMT</pubDate></item><item><title><![CDATA[Reply to LONG_PTR und structs on Thu, 27 Nov 2008 14:46:56 GMT]]></title><description><![CDATA[<p>zeusosc schrieb:</p>
<blockquote>
<p>die zuweisung des Pointers vom struct per SetWindowLong<strong>Ptr</strong> an den Speicher vom Fenster.</p>
<p>Wenn ich das mache ist der Speicher leider leer, das ist er nicht wenn ich integerweise per SetWindowLong die daten übergebe.</p>
</blockquote>
<p>Und! Die Funktionen sind identisch. Was Du sagst kann nicht sein!<br />
SetWindowLongPtr benutzt SetWindowLong... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1621871</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1621871</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Thu, 27 Nov 2008 14:46:56 GMT</pubDate></item><item><title><![CDATA[Reply to LONG_PTR und structs on Thu, 27 Nov 2008 17:55:26 GMT]]></title><description><![CDATA[<p>zeusosc schrieb:</p>
<blockquote>
<p>hehe,</p>
<p>Ich glaube das auch ein paar menschen mit einem win32 system da ahnung habe, aber leider meldet sich da keiner <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>naja,. ich werde weiter suchen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
</blockquote>
<p>das hat weniger mit Ahnung davon zu tun, als der Vorsicht darüber mit wenig Vorinformationen von Dir viel zur Lösung zu sagen <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="😉"
    /> Klar ist ein Pointer in Win64 wie Pointer in Win32 (der eine ist 64 Bit der andere 32 Bit, aber das Prozedere ist nicht viel anderst).</p>
<p>Dein Problem kenne ich, nur schreibst Du es auch so nicht hin. Du willst einem Window eine Struktur mit geben - über deren UserData-Member. Leider zerfällt die Struktur, wenn das Win gebaut wurde, stimmt's?</p>
<p>Nun: Die Struktur sollte in einem shared Memory liegen. Den Mem-Handle kannst Du in Userdata übergeben, so sollte es dann eigentlich funktionieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1622014</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1622014</guid><dc:creator><![CDATA[CStern]]></dc:creator><pubDate>Thu, 27 Nov 2008 17:55:26 GMT</pubDate></item><item><title><![CDATA[Reply to LONG_PTR und structs on Fri, 28 Nov 2008 00:06:25 GMT]]></title><description><![CDATA[<p>Also ich weiss auch nicht was hier nicht klappen sollte.</p>
<p>Ob man nun GWLP_USERDATA oder eigene Indizes verwendet sollte egal sein, solange man ggf. entsprechend den nötigen Platz in der WNDCLASS Struktur angibt.</p>
<p>Was hier mit &quot;zerfallen&quot; und &quot;Speicher leer&quot; gemeint ist verstehe ich auch nicht ganz.</p>
<p>Logisch ist, dass, wenn man einen Zeiger mittels SetWindowLongPtr setzt, nicht die Struktur kopiert wird, sondern nur der Zeiger auf die Struktur. Wenn man dann nicht dafür sorgt dass die Struktur lange genug am Leben bleibt dann bekommt man natürlich Probleme, das sollte klar sein. Oder nicht so klar, falls das das Problem gewesen sein sollte <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1622225</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1622225</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Fri, 28 Nov 2008 00:06:25 GMT</pubDate></item></channel></rss>