<?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[WNDCLASSEX.lpfnWndProc]]></title><description><![CDATA[<p>Die Struktur WNDCLASSEX hat ja bekanntlich die Variable lpfnWndProc in sich. Diese will mit der CALLBACK FUnktion gefüllt werden. Das wäre auch alles kein Problem, aber leider kennt die .cpp Datei, in der ich diese Struktur befülle die WIndowProc Funktion nicht. Ich habe eine Hauptdatei( In der ebent auch die Nachrichtenschleife ist) und eine, in der eine CreateMainWindow Funktion definiert ist( und in der auch die Funktion befüllt wird). Wenn ich jetzt dort die Funktion übergeben will, ist diese logischerweise nicht bekannt. Wie schafft man jetzt also die Information über diese Funktion in die 2. Datei . Ich habe es mit einem Funktionszeiger</p>
<p>[LRESULT(*p_WindowProc) (HWND mah,UINT message, WPARAM wParam, LPARAM lParam)]</p>
<p>als Parameter der CreateMainWindow Funktion. Das wirft allerdings folgenden Fehler aus:</p>
<p>Konvertierung des Parameters 2 von 'LRESULT (__stdcall *)(HWND,UINT,WPARAM,LPARAM)' in 'LRESULT (__cdecl *)(HWND,UINT,WPARAM,LPARAM)' nicht möglich</p>
<p>Was mir jetzt nciht klar ist: In der Struktur befindet sich ja auch ein FUnktionszeiger.<br />
Wieso sind mein Funktionszeiger und die Callback nicht identisch?</p>
<p>Oder gibt es für das, was ich vorhabe andere bessere Möglichkeiten? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/205124/wndclassex-lpfnwndproc</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Apr 2026 15:40:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/205124.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 10 Feb 2008 20:18:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to WNDCLASSEX.lpfnWndProc on Sun, 10 Feb 2008 20:18:49 GMT]]></title><description><![CDATA[<p>Die Struktur WNDCLASSEX hat ja bekanntlich die Variable lpfnWndProc in sich. Diese will mit der CALLBACK FUnktion gefüllt werden. Das wäre auch alles kein Problem, aber leider kennt die .cpp Datei, in der ich diese Struktur befülle die WIndowProc Funktion nicht. Ich habe eine Hauptdatei( In der ebent auch die Nachrichtenschleife ist) und eine, in der eine CreateMainWindow Funktion definiert ist( und in der auch die Funktion befüllt wird). Wenn ich jetzt dort die Funktion übergeben will, ist diese logischerweise nicht bekannt. Wie schafft man jetzt also die Information über diese Funktion in die 2. Datei . Ich habe es mit einem Funktionszeiger</p>
<p>[LRESULT(*p_WindowProc) (HWND mah,UINT message, WPARAM wParam, LPARAM lParam)]</p>
<p>als Parameter der CreateMainWindow Funktion. Das wirft allerdings folgenden Fehler aus:</p>
<p>Konvertierung des Parameters 2 von 'LRESULT (__stdcall *)(HWND,UINT,WPARAM,LPARAM)' in 'LRESULT (__cdecl *)(HWND,UINT,WPARAM,LPARAM)' nicht möglich</p>
<p>Was mir jetzt nciht klar ist: In der Struktur befindet sich ja auch ein FUnktionszeiger.<br />
Wieso sind mein Funktionszeiger und die Callback nicht identisch?</p>
<p>Oder gibt es für das, was ich vorhabe andere bessere Möglichkeiten? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1453312</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1453312</guid><dc:creator><![CDATA[Zorakh1]]></dc:creator><pubDate>Sun, 10 Feb 2008 20:18:49 GMT</pubDate></item><item><title><![CDATA[Reply to WNDCLASSEX.lpfnWndProc on Sun, 10 Feb 2008 20:24:20 GMT]]></title><description><![CDATA[<p>Den Funktionsprototypen schon vorher anlegen...<br />
also Bsp:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

void Function ();

int main ()
{
     Function ();
     return 0;
}

void Function ()
{
    cout &lt;&lt; &quot;Hallo Welt!&quot;;
}
</code></pre>
<p>Außerdem musst bei dem Parameter nur den Funktionsnamen angeben, nicht die Funktion mit Parametern, also</p>
<pre><code class="language-cpp">bla.lpfnWndProc = MyCallback;
</code></pre>
<p>anstatt</p>
<pre><code class="language-cpp">bla.lpfnWndProc = MyCallback (...);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1453315</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1453315</guid><dc:creator><![CDATA[Fake oder Echt]]></dc:creator><pubDate>Sun, 10 Feb 2008 20:24:20 GMT</pubDate></item><item><title><![CDATA[Reply to WNDCLASSEX.lpfnWndProc on Sun, 10 Feb 2008 20:39:32 GMT]]></title><description><![CDATA[<p>Ich heiß jetzt anders schrieb:</p>
<blockquote>
<p>Den Funktionsprototypen schon vorher anlegen...<br />
also Bsp:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

void Function ();

int main ()
{
     Function ();
     return 0;
}

void Function ()
{
    cout &lt;&lt; &quot;Hallo Welt!&quot;;
}
</code></pre>
<p>Außerdem musst bei dem Parameter nur den Funktionsnamen angeben, nicht die Funktion mit Parametern, also</p>
<pre><code class="language-cpp">bla.lpfnWndProc = MyCallback;
</code></pre>
<p>anstatt</p>
<pre><code class="language-cpp">bla.lpfnWndProc = MyCallback (...);
</code></pre>
</blockquote>
<p>Wenn ich dich richtig verstehe soll die Datei jetzt so aussehen:</p>
<pre><code>//Includes
LRESULT CALLBACK WindowProc (HWND mah,UINT message, WPARAM wParam, LPARAM lParam);
int WINAPI WinMain (HINSTANCE hInst,HINSTANCE hPrevInstance, LPSTR lpcmdlinde, int ncmdshow)
{
CreateAppWindow(hInst);
}
LRESULT CALLBACK WindowProc (HWND mah,UINT message, WPARAM wParam, LPARAM lParam)
{
	return (DefWindowProc(mah,message,wParam,lParam));
}
</code></pre>
<p>Und dann eben in der anderen Datei:</p>
<pre><code>//Includes

int CreateAppWindow(HINSTANCE hInst2)
{
	     WCHAR NAME[256];
	    char* pmbhello=&quot;MAIN&quot;;
        MultiByteToWideChar( CP_ACP, 0, pmbhello,
        strlen(pmbhello)+1, NAME,sizeof(NAME)/sizeof(NAME[0]) );
	    WNDCLASSEX windowclass;
	    windowclass.cbSize= sizeof(WNDCLASSEX);
		windowclass.style= CS_HREDRAW|CS_VREDRAW;
		windowclass.lpfnWndProc =WindowProc;
		windowclass.cbClsExtra = 0;
		windowclass.cbWndExtra = 0;
		windowclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
        windowclass.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
		windowclass.hCursor = LoadCursor(NULL, IDC_ARROW);
		windowclass.hbrBackground = (HBRUSH) COLOR_BACKGROUND+1;
		windowclass.lpszMenuName=NULL;
		windowclass.lpszClassName =(LPCWSTR)&quot;Main&quot;;
		RegisterClassEx (&amp;windowclass);

		mah= CreateWindowEx(NULL,
							NAME,
							NAME,
							WS_VISIBLE|WS_POPUP,
							0,0,
						    GetSystemMetrics(SM_CXSCREEN), 
                            GetSystemMetrics(SM_CYSCREEN), 
							NULL,
							NULL,
							hInst2,
							NULL);

return 0;
}
</code></pre>
<p>[Jetzt pls nicht über schlechten Stil beschweren, dass ist nur ein Test!]</p>
<p>Also ich habe das jetzt so versucht, aber dann bekomme ich die Meldung:</p>
<p>error C2065: 'WindowProc': nichtdeklarierter Bezeichner</p>
<p>So geht es also leider nciht <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>Noch andere Vorschläge? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1453333</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1453333</guid><dc:creator><![CDATA[Zorakh1]]></dc:creator><pubDate>Sun, 10 Feb 2008 20:39:32 GMT</pubDate></item><item><title><![CDATA[Reply to WNDCLASSEX.lpfnWndProc on Mon, 11 Feb 2008 04:55:39 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">LRESULT CALLBACK WindowProc (HWND mah,UINT message, WPARAM wParam, LPARAM lParam);
</code></pre>
<p>muss noch vor den include, also z.B.</p>
<pre><code class="language-cpp">#include &lt;windows&gt;

LRESULT CALLBACK WindowProc (HWND mah,UINT message, WPARAM wParam, LPARAM lParam);

#include &quot;functions.hpp&quot;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1453417</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1453417</guid><dc:creator><![CDATA[Fake oder Echt]]></dc:creator><pubDate>Mon, 11 Feb 2008 04:55:39 GMT</pubDate></item><item><title><![CDATA[Reply to WNDCLASSEX.lpfnWndProc on Mon, 11 Feb 2008 14:28:28 GMT]]></title><description><![CDATA[<p>Schon wieder 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>
<p>Der COde sieht jetzt so aus</p>
<pre><code>#include &lt;windows.h&gt;

LRESULT CALLBACK WindowProc (HWND mah,UINT message, WPARAM wParam, LPARAM lParam);
#include &quot;GlobalExVar.h&quot;
#include &quot;AGO.h&quot;
#include &quot;InitMainAppWindow.h&quot;
#include &quot;LRESULT.h&quot;
int WINAPI WinMain (HINSTANCE hInst,HINSTANCE hPrevInstance, LPSTR lpcmdlinde, int ncmdshow)
{

CreateAppWindow(hInst,WindowProc);
return 0;
}
LRESULT CALLBACK WindowProc (HWND mah,UINT message, WPARAM wParam, LPARAM lParam)
{
return (DefWindowProc(mah,message,wParam,lParam));
}
</code></pre>
<pre><code>#include &lt;windows.h&gt;
#include &quot;InitMainAppWindow.h&quot;
#include &quot;GlobalExVar.h&quot;
int CreateAppWindow(HINSTANCE hInst2,LRESULT (*WindowProcP) (HWND mah,UINT message, WPARAM wParam, LPARAM lParam))
{
	WNDCLASSEX windowclass;
	     WCHAR NAME[256];
	    char* pmbhello=&quot;MAIN&quot;;
        MultiByteToWideChar( CP_ACP, 0, pmbhello,
        strlen(pmbhello)+1, NAME,sizeof(NAME)/sizeof(NAME[0]) );
	    windowclass.cbSize= sizeof(WNDCLASSEX);
		windowclass.style= CS_HREDRAW|CS_VREDRAW;
		windowclass.lpfnWndProc=WindowProcP;
		windowclass.cbClsExtra = 0;
		windowclass.cbWndExtra = 0;
		windowclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
        windowclass.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
		windowclass.hCursor = LoadCursor(NULL, IDC_ARROW);
		windowclass.hbrBackground = (HBRUSH) COLOR_BACKGROUND+1;
		windowclass.lpszMenuName=NULL;
		windowclass.lpszClassName =(LPCWSTR)&quot;Main&quot;;
		RegisterClassEx (&amp;windowclass);

		mah= CreateWindowEx(NULL,
							NAME,
							NAME,
							WS_VISIBLE|WS_POPUP,
							0,0,
						    GetSystemMetrics(SM_CXSCREEN), 
                            GetSystemMetrics(SM_CYSCREEN), 
							NULL,
							NULL,
							hInst2,
							NULL);

return 0;
}
</code></pre>
<p>Leider folgt folgende Fehlermeldung( die die auch schon am Anfang war):</p>
<p>**1&gt;Kompilieren...<br />
1&gt;AGO.cpp<br />
1&gt;c:\users\nils\desktop\myengine\ago-engine\ago-engine\ago.cpp(12) : error C2664: 'CreateAppWindow': Konvertierung des Parameters 2 von 'LRESULT (__stdcall *)(HWND,UINT,WPARAM,LPARAM)' in 'LRESULT (__cdecl *)(HWND,UINT,WPARAM,LPARAM)' nicht möglich<br />
1&gt; Keine Funktion mit diesem Namen im Gültigkeitsbereich stimmt mit dem Zieltyp überein<br />
1&gt;InitMainAppWindow.cpp<br />
1&gt;c:\users\nils\desktop\myengine\ago-engine\ago-engine\initmainappwindow.cpp(13) : error C2440: '=': 'LRESULT (__cdecl *)(HWND,UINT,WPARAM,LPARAM)' kann nicht in 'WNDPROC' konvertiert werden<br />
1&gt; Diese Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat<br />
1&gt;Code wird generiert...<br />
**</p>
<p>Ich hoffe auf eine Lösung, mir fehlen langsam die Ideen <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/1453686</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1453686</guid><dc:creator><![CDATA[Zorakh1]]></dc:creator><pubDate>Mon, 11 Feb 2008 14:28:28 GMT</pubDate></item><item><title><![CDATA[Reply to WNDCLASSEX.lpfnWndProc on Mon, 11 Feb 2008 14:31:28 GMT]]></title><description><![CDATA[<p>Also das</p>
<p>**: error C2664: 'CreateAppWindow': Konvertierung des Parameters 2 von 'LRESULT (__stdcall <em>)(HWND,UINT,WPARAM,LPARAM)' in 'LRESULT (__cdecl <em>)(HWND,UINT,WPARAM,LPARAM)' nicht möglich</em></em><br />
ist das Problem. Die andere Meldung habe ich nur falsch kopiert!<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1453691</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1453691</guid><dc:creator><![CDATA[Zorakh1]]></dc:creator><pubDate>Mon, 11 Feb 2008 14:31:28 GMT</pubDate></item><item><title><![CDATA[Reply to WNDCLASSEX.lpfnWndProc on Mon, 11 Feb 2008 15:42:29 GMT]]></title><description><![CDATA[<p>ähm..die windowproc sollte bei der befüllung von der WNDCLASSEX struktur schon bekannt sein... du kannst sie ja in dieser datei deklarieren und dann in main.cpp definienren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1453752</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1453752</guid><dc:creator><![CDATA[hey]]></dc:creator><pubDate>Mon, 11 Feb 2008 15:42:29 GMT</pubDate></item><item><title><![CDATA[Reply to WNDCLASSEX.lpfnWndProc on Mon, 11 Feb 2008 16:36:22 GMT]]></title><description><![CDATA[<p>Ich heiß jetzt anders schrieb:</p>
<blockquote>
<pre><code class="language-cpp">LRESULT CALLBACK WindowProc (HWND mah,UINT message, WPARAM wParam, LPARAM lParam);
</code></pre>
<p>muss noch vor den include, also z.B.</p>
<pre><code class="language-cpp">#include &lt;windows&gt;

LRESULT CALLBACK WindowProc (HWND mah,UINT message, WPARAM wParam, LPARAM lParam);

#include &quot;functions.hpp&quot;
</code></pre>
</blockquote>
<p>war mein fehler, lass mal die parameter weg, also:</p>
<pre><code class="language-cpp">LRESULT CALLBACK WindowProc (HWND, UINT, WPARAM, LPARAM);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1453793</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1453793</guid><dc:creator><![CDATA[Fake oder Echt]]></dc:creator><pubDate>Mon, 11 Feb 2008 16:36:22 GMT</pubDate></item><item><title><![CDATA[Reply to WNDCLASSEX.lpfnWndProc on Mon, 11 Feb 2008 17:20:22 GMT]]></title><description><![CDATA[<p>Das funktioniert auch nciht so richtig. Habe es jetzt über eine globale Struktur gelöst. Das ist zwar nicht besonders guter STil, aber das sollte auch erstmal nur ein Test werden!</p>
<p>Danek an Alle <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="⚠"
    /> <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="⚠"
    /> <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="⚠"
    /> <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="⚠"
    /> <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1453834</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1453834</guid><dc:creator><![CDATA[Zorakh1]]></dc:creator><pubDate>Mon, 11 Feb 2008 17:20:22 GMT</pubDate></item></channel></rss>