<?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[WndProc in Klasse... again &amp;gt;.&amp;lt;]]></title><description><![CDATA[<p>Hai,<br />
hab eine Klasse, die auch mit 2 WndProcs arbeitet - einen statischen und einen member-WndProc. funktioniert auch wunderbar.... fast. und zwar passieren äußerst merkwürdige dinge - z.B werden die Variablen, die im WndProc() verändert werden, nach dem verlassen des WndProc()s einfach wieder auf den Zustand zuvor zurückgesetzt... oder man kriegt komische Zugriffsverletzungsfehler... Irgendjemand einen Tipp?</p>
<p>achso, noch 2 links, erstmal der thread wo ich die einbindung des WndProcs in die klasse gelernt hatte:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-174421.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-174421.html</a><br />
und ein konkretes problem mit ner MultimediaKlasse (auf basis von directShow):<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-176363.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-176363.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/176483/wndproc-in-klasse-again-gt-lt</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Jul 2026 21:59:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/176483.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 21 Mar 2007 16:56:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to WndProc in Klasse... again &amp;gt;.&amp;lt; on Wed, 21 Mar 2007 16:56:28 GMT]]></title><description><![CDATA[<p>Hai,<br />
hab eine Klasse, die auch mit 2 WndProcs arbeitet - einen statischen und einen member-WndProc. funktioniert auch wunderbar.... fast. und zwar passieren äußerst merkwürdige dinge - z.B werden die Variablen, die im WndProc() verändert werden, nach dem verlassen des WndProc()s einfach wieder auf den Zustand zuvor zurückgesetzt... oder man kriegt komische Zugriffsverletzungsfehler... Irgendjemand einen Tipp?</p>
<p>achso, noch 2 links, erstmal der thread wo ich die einbindung des WndProcs in die klasse gelernt hatte:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-174421.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-174421.html</a><br />
und ein konkretes problem mit ner MultimediaKlasse (auf basis von directShow):<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-176363.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-176363.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1249946</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1249946</guid><dc:creator><![CDATA[Azrael* il Meraz]]></dc:creator><pubDate>Wed, 21 Mar 2007 16:56:28 GMT</pubDate></item><item><title><![CDATA[Reply to WndProc in Klasse... again &amp;gt;.&amp;lt; on Fri, 23 Mar 2007 13:08:31 GMT]]></title><description><![CDATA[<p>ok, die klasse klappt, ich hab grad was anderes versucht:</p>
<pre><code class="language-cpp">LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
	static int Volume = 0;
	static MMMUSIC *mmm = NULL;
	switch(msg)
	{
	case WM_CREATE:
		mmm = (MMMUSIC*) lParam;
		break;
	case WM_CHAR:
		switch(wParam)
		{
		case '+':
			if(Volume &lt; 0)
				Volume+= 100;

			mmm-&gt;SetVolume(Volume);
			break;
		case '-':
			if(Volume &gt; -10000)
				Volume-= 100;

			mmm-&gt;SetVolume(Volume);
			break;
		default:
			break;
		}
		break;
	case WM_DESTROY:

		PostQuitMessage(0);
		break;
	default:
		break;
	}
	return DefWindowProc(hWnd, msg, wParam, lParam);
}
</code></pre>
<p>bei CreateWindow wird ein zeiger auf eine MMMUSIC instanz übergeben, dieser wird bei WM_CREATE in dem statischen Zeiger gespeichert. scheint ja alles ok zu sein. Jedoch wird mir der Zugriff auf die memberfunktionen verwehrt. die Funktionen funktionieren, hab sie (mit einer globalen Instanz) getestet... Ich verstehe nicht, was falsch ist.</p>
<p>Achso: beim debuggen hab ich gesehen, dass der Zeiger gültig ist, und mit dem Zeiger in der WinMain übereinstimmt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251111</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251111</guid><dc:creator><![CDATA[Azrael* il Meraz]]></dc:creator><pubDate>Fri, 23 Mar 2007 13:08:31 GMT</pubDate></item><item><title><![CDATA[Reply to WndProc in Klasse... again &amp;gt;.&amp;lt; on Fri, 23 Mar 2007 21:36:31 GMT]]></title><description><![CDATA[<p>hmmmm... darf ich bittebitte antwort haben?^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251426</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251426</guid><dc:creator><![CDATA[Azrael* il Meraz]]></dc:creator><pubDate>Fri, 23 Mar 2007 21:36:31 GMT</pubDate></item><item><title><![CDATA[Reply to WndProc in Klasse... again &amp;gt;.&amp;lt; on Fri, 23 Mar 2007 22:09:57 GMT]]></title><description><![CDATA[<p>Was meinst Du mit &quot;Zugriff verwehrt&quot; ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251435</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251435</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 23 Mar 2007 22:09:57 GMT</pubDate></item><item><title><![CDATA[Reply to WndProc in Klasse... again &amp;gt;.&amp;lt; on Fri, 23 Mar 2007 23:23:55 GMT]]></title><description><![CDATA[<p><a href="http://xcpp.de/ressources/cpp/zv.jpg" rel="nofollow">http://xcpp.de/ressources/cpp/zv.jpg</a></p>
<p>das^^&quot;<br />
verstehe auch nicht, wie er auf 0x000000fc kommt...</p>
<p>Weiß auch ganz sicher, dass die Klasse klappt - hatte sie schon mal im WndProc instanziert, dann klappt das. Im kleinen Pseudo-programm hier kann ich das ja machen, nur nicht im projekt^^&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251453</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251453</guid><dc:creator><![CDATA[Azrael* il Meraz]]></dc:creator><pubDate>Fri, 23 Mar 2007 23:23:55 GMT</pubDate></item><item><title><![CDATA[Reply to WndProc in Klasse... again &amp;gt;.&amp;lt; on Fri, 23 Mar 2007 23:37:33 GMT]]></title><description><![CDATA[<p>Ich glaub, er würfelt alle Daten von mmm durcheinander - so sieht mmm zum selben Zeitpunkt aus, wenn alles klappt (Im WndProc Instanziert)<br />
<a href="http://xcpp.de/ressources/cpp/richtig.jpg" rel="nofollow">http://xcpp.de/ressources/cpp/richtig.jpg</a></p>
<p>Bringt mich aber kein stück weiter <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f623.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--persevering_face"
      title="&gt;.&lt;"
      alt="😣"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251456</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251456</guid><dc:creator><![CDATA[Azrael* il Meraz]]></dc:creator><pubDate>Fri, 23 Mar 2007 23:37:33 GMT</pubDate></item><item><title><![CDATA[Reply to WndProc in Klasse... again &amp;gt;.&amp;lt; on Fri, 23 Mar 2007 23:41:41 GMT]]></title><description><![CDATA[<p>Hmm, die WndProc wird auch nur von einem Fenster verwendet?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251458</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251458</guid><dc:creator><![CDATA[geeky]]></dc:creator><pubDate>Fri, 23 Mar 2007 23:41:41 GMT</pubDate></item><item><title><![CDATA[Reply to WndProc in Klasse... again &amp;gt;.&amp;lt; on Fri, 23 Mar 2007 23:48:37 GMT]]></title><description><![CDATA[<p>in diesem Programm gibts nur ein fenster...<br />
oder soll ich bei Peekmessage/GetMessage das hWnd mit angeben?<br />
klappt aber auch so nicht <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1251460</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251460</guid><dc:creator><![CDATA[Azrael* il Meraz]]></dc:creator><pubDate>Fri, 23 Mar 2007 23:48:37 GMT</pubDate></item><item><title><![CDATA[Reply to WndProc in Klasse... again &amp;gt;.&amp;lt; on Fri, 23 Mar 2007 23:58:11 GMT]]></title><description><![CDATA[<p>Die zv.jpg zeigt, dass der Zeiger mmm nicht inititialisiert ist.<br />
Prüf mal, ob sich der Kompiler einen Scherz erlaubt hat :</p>
<pre><code class="language-cpp">// hier einen Breakpoint und kontrollieren 
// ob bei jeder Message der Zeiger auf NULL gesetzt wird
static MMMUSIC *mmm = NULL;
</code></pre>
<p>Ich kann es mir zwar nicht vorstellen, aber wer weiss...<br />
Danach prüf mal ob es läuft wenn die lokale Variable mmm global ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251463</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251463</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 23 Mar 2007 23:58:11 GMT</pubDate></item><item><title><![CDATA[Reply to WndProc in Klasse... again &amp;gt;.&amp;lt; on Sat, 24 Mar 2007 00:44:49 GMT]]></title><description><![CDATA[<p>beobachtung: bei WM_CREATE wird alles richtig zugewiesen, in den nächsten 2 Durchläufen (die jeweils beim DefWindowProc() enden, stimmt alles, beim dritten wird der Zeiger auf irgendeinen wert gesetzt</p>
<p>hab das auch so versucht:</p>
<pre><code class="language-cpp">static MMMUSIC *mmm = NULL/* = new MMMUSIC*/;
	if(mmm) mmm = (MMMUSIC*) ((LPCREATESTRUCT)GetWindowLong(hWnd, 0))-&gt;lpCreateParams;
	switch(msg)
	{
	case WM_CREATE:
		SetWindowLong(hWnd, 0,(LONG) lParam);
		mmm = (MMMUSIC*) ((LPCREATESTRUCT)GetWindowLong(hWnd, 0))-&gt;lpCreateParams;
		mmm-&gt;InitDirectShow();
		break;
</code></pre>
<p>hat aber auch keine wirkung (wcex.cbWndExtra = 4; natürlich)</p>
<p>EDIT: bei weiteren durchläufen ändert sich der zeiger ab und zu auch noch paar mal, mal 0x0000000f mal 0xfeeefeee mal sonst irgendwas...<br />
Ich versteh ganix mehr</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251473</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251473</guid><dc:creator><![CDATA[Azrael* il Meraz]]></dc:creator><pubDate>Sat, 24 Mar 2007 00:44:49 GMT</pubDate></item><item><title><![CDATA[Reply to WndProc in Klasse... again &amp;gt;.&amp;lt; on Sat, 24 Mar 2007 01:03:13 GMT]]></title><description><![CDATA[<p>Azrael, il Meraz schrieb:</p>
<blockquote>
<p>beim dritten wird der Zeiger auf irgendeinen wert gesetzt</p>
</blockquote>
<p>Das ist der Schlüsselsatz. Also nicht NULL sondern &quot;irgendwas/wo&quot;.<br />
Probier mal so :</p>
<pre><code class="language-cpp">...
case WM_CREATE:
 SetWindowLong(hWnd, 0,(LONG) lParam); // setzt voraus, dass lParam *mmm ist
// mmm = (MMMUSIC*) ((LPCREATESTRUCT)GetWindowLong(hWnd, 0))-&gt;lpCreateParams;
 mmm = (MMMUSIC*) GetWindowLong(hWnd, 0);
 mmm-&gt;InitDirectShow();
 break;
...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1251477</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251477</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sat, 24 Mar 2007 01:03:13 GMT</pubDate></item><item><title><![CDATA[Reply to WndProc in Klasse... again &amp;gt;.&amp;lt; on Sat, 24 Mar 2007 16:27:04 GMT]]></title><description><![CDATA[<p>so kommt er garnicht dazu, einen richtigen Zeiger zu bekommen - der is dann schon von anfang an verwirrt. bei WM_CREATE wird schon irgendein schrott zugewiesen...</p>
<p>hmmm... weiß nicht warum, aber nun wird der Zeiger zwar nicht verändert, aber die daten der instanz werden überschrieben.. (also mit createstruct jetzt)</p>
<p>EDIT: hab ma die ganze sache geuppt ( da hatte ich noch ne kranke lösung ausprobiert xD):<br />
<a href="http://xcpp.de/ressources/cpp/MulMed.rar" rel="nofollow">http://xcpp.de/ressources/cpp/MulMed.rar</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251702</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251702</guid><dc:creator><![CDATA[Azrael* il Meraz]]></dc:creator><pubDate>Sat, 24 Mar 2007 16:27:04 GMT</pubDate></item><item><title><![CDATA[Reply to WndProc in Klasse... again &amp;gt;.&amp;lt; on Sat, 24 Mar 2007 18:38:54 GMT]]></title><description><![CDATA[<p>Das Set/GetWindowLong () und die CREATESTRUCT brauchst Du nur, wenn die WndProc in einer Klasse ist.<br />
Allerdings ist sie das nicht. Deshalb reicht folgendes :</p>
<pre><code class="language-cpp">// so übergeben :
INT WINAPI WinMain (...) {
...
 MMMUSIC *mmm = new (MMMUSIC);
...
 CreateWindowEx (...,mmm);
...
 delete (mmm);
...
}

// so initialisieren :
LRESULT WINAPI WndProc(...) {
...
 static MMMUSIC *mmm = 0;
...
  case WM_CREATE : {
   mmm = (MMMUSIC *) lParam;
   mmm -&gt; InitDirectShow();
   break;
  }
...
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1251807</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251807</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sat, 24 Mar 2007 18:38:54 GMT</pubDate></item><item><title><![CDATA[Reply to WndProc in Klasse... again &amp;gt;.&amp;lt; on Sat, 24 Mar 2007 19:08:42 GMT]]></title><description><![CDATA[<p>ne - geht auch nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f623.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--persevering_face"
      title="&gt;.&lt;"
      alt="😣"
    /> hab ausprobiert. aber eigentlich will ich das ja auch den WndProc in die klasse tun, hier ist halt nur ein anderes Beispiel. Ich vertseh überhauptnicht, wie das nicht klappen kann...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251823</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251823</guid><dc:creator><![CDATA[Azrael* il Meraz]]></dc:creator><pubDate>Sat, 24 Mar 2007 19:08:42 GMT</pubDate></item><item><title><![CDATA[Reply to WndProc in Klasse... again &amp;gt;.&amp;lt; on Sat, 24 Mar 2007 19:38:10 GMT]]></title><description><![CDATA[<p>hmmm - ich hab mir jetzt ne eigene Message definiert, damit geht das Oo</p>
<pre><code class="language-cpp">#define WM_MMMCR WM_USER
...
hWnd = CreateWindowEx(...);
SendMessage(hWnd, WM_MMMCR, NULL, (LONG) mmm);
....
case WM_MMMCR:
		mmm = (MMMUSIC*) lParam;
		mmm-&gt;InitDirectShow();
		break;
...
</code></pre>
<p>total krank, ich glaub, ich fass die WM_CREATE net mehr an...</p>
<p>mal schaun, ob das auch mit SetWindowLong klappt und den member-wndproc...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251846</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251846</guid><dc:creator><![CDATA[Azrael* il Meraz]]></dc:creator><pubDate>Sat, 24 Mar 2007 19:38:10 GMT</pubDate></item><item><title><![CDATA[Reply to WndProc in Klasse... again &amp;gt;.&amp;lt; on Sat, 24 Mar 2007 20:00:40 GMT]]></title><description><![CDATA[<p>Such lieber eine geeignete Stelle, wo &quot;mmm-&gt;InitDirectShow()&quot; aufgerufen wird.<br />
Vielleicht gleich nach CreateWindowEx () in der WinMain :</p>
<pre><code class="language-cpp">// hier rein :
WinMain (...)
...
CreateWindowEx (...,mmm);
mmm -&gt; InitDirectShow();
...

// hier raus :
WndProc (...)
...
 case WM_CREATE : {
    mmm = (MMMUSIC *) lParam;
//    mmm -&gt; InitDirectShow();
    break;
   }
...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1251862</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251862</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sat, 24 Mar 2007 20:00:40 GMT</pubDate></item><item><title><![CDATA[Reply to WndProc in Klasse... again &amp;gt;.&amp;lt; on Sat, 24 Mar 2007 20:05:07 GMT]]></title><description><![CDATA[<p>ne - klappt nicht - der zeiger ist wieder verwirrt...</p>
<p>Ist die Lösung mit eigener Nachricht irgendwie schlechter Stil?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251864</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251864</guid><dc:creator><![CDATA[Azrael* il Meraz]]></dc:creator><pubDate>Sat, 24 Mar 2007 20:05:07 GMT</pubDate></item><item><title><![CDATA[Reply to WndProc in Klasse... again &amp;gt;.&amp;lt; on Sat, 24 Mar 2007 20:16:56 GMT]]></title><description><![CDATA[<p>merker schrieb:</p>
<blockquote>
<pre><code class="language-cpp">case WM_CREATE:
    mmm = (MMMUSIC *)lParam;
    break;
</code></pre>
</blockquote>
<p>Win32 Programmer's Reference schrieb:</p>
<blockquote>
<p><strong>WM_CREATE</strong></p>
<p>lParam</p>
<p>Value of lParam. Points to a <strong>CREATESTRUCT</strong> structure that contains information about the window being created.</p>
</blockquote>
<p>Ich hab das Problem in C auch mal gehabt...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251873</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251873</guid><dc:creator><![CDATA[keksekekse]]></dc:creator><pubDate>Sat, 24 Mar 2007 20:16:56 GMT</pubDate></item><item><title><![CDATA[Reply to WndProc in Klasse... again &amp;gt;.&amp;lt; on Sat, 24 Mar 2007 20:26:49 GMT]]></title><description><![CDATA[<p>Ahhh, Dank an &quot;keksekekse&quot; für den Hinweis <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>
<p>Funktioniert folgendes Casting :</p>
<pre><code class="language-cpp">WinProc (...)
...
 case WM_CREATE : {
//  mmm = (MMMUSIC *) lParam;
  mmm = (MMUSIC *) ((LPCREATESTRUCT) lParam) -&gt; lpCreateParams;
  mmm -&gt; InitDirectShow();
  break;
 }
</code></pre>
<p>P.S.: Eigene Nachrichten sind kein schlechter Stil.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251876</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251876</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sat, 24 Mar 2007 20:26:49 GMT</pubDate></item><item><title><![CDATA[Reply to WndProc in Klasse... again &amp;gt;.&amp;lt; on Sat, 24 Mar 2007 21:01:56 GMT]]></title><description><![CDATA[<p>ne - immer noch verwirrter zeiger.</p>
<p>Was spricht dann gegen ne eigene Nachricht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251898</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251898</guid><dc:creator><![CDATA[Azrael* il Meraz]]></dc:creator><pubDate>Sat, 24 Mar 2007 21:01:56 GMT</pubDate></item><item><title><![CDATA[Reply to WndProc in Klasse... again &amp;gt;.&amp;lt; on Sat, 24 Mar 2007 21:40:52 GMT]]></title><description><![CDATA[<p>Nichts spricht gegen die eigene Nachricht. Das ist auch eine schöne und saubere Lösung.<br />
Schliesslich geht es nur darum, einen in der WinMain erzeugten Zeiger zu übergeben.</p>
<p>Mich verwirrt jetzt nur, warum der Zeiger nicht via &quot;CreateWindowEx (..., mmm)&quot; und WM_CREATE mit &quot;mmm = (MMUSIC <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="😉"
    /> ((LPCREATESTRUCT) lParam) -&gt; lpCreateParams&quot; korrekt übergeben werden konnte.</p>
<p>Aber das muss jetzt nicht das Problem sein <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/1251915</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251915</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sat, 24 Mar 2007 21:40:52 GMT</pubDate></item><item><title><![CDATA[Reply to WndProc in Klasse... again &amp;gt;.&amp;lt; on Sat, 24 Mar 2007 21:48:21 GMT]]></title><description><![CDATA[<p>Also bei mir funktioniert der Code einwandfrei. Schau doch mal, per debugging printf(xyz) was genau bei Dir mit WM_CREATE ankommt. Mein Verdacht ist dahingehend, daß Klassenvariablen dynamisch sind oder so. Neue Idee: Ich versuchs mal auch mit ner c++-Klasse.</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;
#include &lt;stdio.h&gt;

long _stdcall WndProc(HWND hwnd, unsigned int message, unsigned int wParam,
                                                                   long lParam)
{
  HDC hdc;
  PAINTSTRUCT ps;
  CREATESTRUCT *lpcs;
  static long iAABBCCDD;
  char o[1000];

  switch(message)
	{ case WM_CREATE:
		  lpcs = (CREATESTRUCT *)lParam;
		  iAABBCCDD = (long)(lpcs-&gt;lpCreateParams);
		  return 0;
	  case WM_PAINT:
	      hdc = BeginPaint(hwnd, &amp;ps);
		  _snprintf(o, sizeof(o), &quot;0x%08lX&quot;, iAABBCCDD);
          TextOut(hdc, 10, 10, o, strlen(o));
		  EndPaint(hwnd, &amp;ps);
	      return 0;
	  case WM_DESTROY:
		  PostQuitMessage(0);
    }
  return DefWindowProc(hwnd, message, wParam, lParam);
}

int _stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
                                                 char *szCmdLine, int iCmdShow)
{
  HWND hwnd;
  MSG msg;
  WNDCLASS wc;

  ZeroMemory(&amp;wc, sizeof(WNDCLASS));
  wc.style         = CS_HREDRAW | CS_VREDRAW;
  wc.lpfnWndProc   = WndProc;
  wc.hInstance     = hInstance;
  wc.hIcon         = LoadIcon(0, IDI_INFORMATION);
  wc.hCursor       = LoadCursor(0, IDC_ARROW);
  wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
  wc.lpszClassName = &quot;mbclass&quot;;
  RegisterClass(&amp;wc);

  hwnd = CreateWindow(&quot;mbclass&quot;, &quot;Titel&quot;, WS_OVERLAPPEDWINDOW,
					  CW_USEDEFAULT, CW_USEDEFAULT,
					  CW_USEDEFAULT, CW_USEDEFAULT,
					  0, 0, hInstance, (void *)0xAABBCCDD);
  ShowWindow(hwnd, iCmdShow);
  UpdateWindow(hwnd);

  while(GetMessage(&amp;msg, 0, 0, 0) &gt; 0)
      DispatchMessage(&amp;msg);

  return msg.wParam;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1251922</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251922</guid><dc:creator><![CDATA[keksekekse]]></dc:creator><pubDate>Sat, 24 Mar 2007 21:48:21 GMT</pubDate></item><item><title><![CDATA[Reply to WndProc in Klasse... again &amp;gt;.&amp;lt; on Sat, 24 Mar 2007 21:54:25 GMT]]></title><description><![CDATA[<p>Ich hab noch eine Idee: Ist die Struktur MMM, deren Zeiger Du übergibst, denn auch nicht &quot;flüchtig&quot;, d.h. wird sie freigegeben, nach dem der Zeiger übergeben ist? Das könnte vieles erklären.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251926</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251926</guid><dc:creator><![CDATA[keksekekse]]></dc:creator><pubDate>Sat, 24 Mar 2007 21:54:25 GMT</pubDate></item><item><title><![CDATA[Reply to WndProc in Klasse... again &amp;gt;.&amp;lt; on Sat, 24 Mar 2007 22:20:34 GMT]]></title><description><![CDATA[<p>der code funktioniert bei mir Oo.. aber in meinem fall hatte sich der zeiger am ende ja auch nicht verändert - nur die daten der struktur.... und ne - die mmm wird erst nach der Messageschleife freigegeben</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251940</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251940</guid><dc:creator><![CDATA[Azrael* il Meraz]]></dc:creator><pubDate>Sat, 24 Mar 2007 22:20:34 GMT</pubDate></item><item><title><![CDATA[Reply to WndProc in Klasse... again &amp;gt;.&amp;lt; on Sat, 24 Mar 2007 23:01:25 GMT]]></title><description><![CDATA[<p>Läuft's nun oder nicht ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251967</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251967</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sat, 24 Mar 2007 23:01:25 GMT</pubDate></item><item><title><![CDATA[Reply to WndProc in Klasse... again &amp;gt;.&amp;lt; on Sat, 24 Mar 2007 23:32:48 GMT]]></title><description><![CDATA[<p>mit CreateWindowEx() -&gt; nein<br />
mit eigener nachricht ja</p>
<p>der zeiger auf die instanz bleibt mit WM_CREATE richtig, aber die daten der instanz werden zerwürfelt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251976</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251976</guid><dc:creator><![CDATA[Azrael* il Meraz]]></dc:creator><pubDate>Sat, 24 Mar 2007 23:32:48 GMT</pubDate></item></channel></rss>