<?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[Problem mit WndProc]]></title><description><![CDATA[<p>Mahlzeit!</p>
<p>Bin gerade dabei mich in die Windows Programmierung einzuarbeiten und stecke gleich mal beim ersten Programm mit folgender Fehlermeldung fest:</p>
<p>&quot;undefined reference to `_Z7WndProcP6HWND__jjl@16'&quot;</p>
<p>Benutze die Eclipse C/C++ IDE mit dem MingW/G++ Compiler. Bibliotheken sind eingebunden, -mwindows is auch gesetzt. Was läuft hier falsch? <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>Danke im voraus!</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;
// Globale Variablen
HINSTANCE hInst  	= 0;		// Programm-Handle
char szAppName[] 	= &quot;Basis&quot;; 	// Name der Anwendung
char szTitle[100]	= &quot;Hallo Windows&quot;;	// Fenstertitel

// Prototypen eigener Funktionen

BOOL InitApplication();
BOOL InitInstance(int);
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

// Der Programm Einstiegspunkt
int WINAPI WinMain(	HINSTANCE hInstance,
					HINSTANCE hPrevInstance,
					LPSTR	  lpCmdLine,
					int		  nCmdShow)
{
	MSG msg;				// Platz für eine Message
	hInst = hInstance; 		// Handle der Instanz an eine globale Variable zuweisen
	if(!InitApplication())	// Fenster registrieren
		return FALSE;
	if(!InitInstance(nCmdShow))	// Hauptfenster erzeugen
		return FALSE;
	while(GetMessage(&amp;msg,NULL,0,0)) //Meldungsschleife
	{
		TranslateMessage(&amp;msg);
		DispatchMessage(&amp;msg);
	}
	return (msg.wParam);
}

//--------------------Fortsetzung----------------------

BOOL InitApplication()
{
	WNDCLASSEX wc;							//Fensterklasse

//Die Eigenschaften der Fensterklasse festlegen:

	wc.cbSize 	= sizeof(WNDCLASSEX);								//Anzahl Byte dieser Struktur
	wc.style 			= CS_HREDRAW | CS_VREDRAW;				// Fensterstile
	wc.lpfnWndProc 		= (WNDPROC) WndProc;						// Fensterprozedur
	wc.cbClsExtra 		= 0;									//Hier kann zusätzlicher Speicher reserviert werden
	wc.cbWndExtra 		= 0;									//den das Programm für eigene Zwecke nutzt.
	wc.hInstance 		= hInst;								//Handle dieser Instanz											
	wc.hIcon			= LoadIcon( NULL, IDI_APPLICATION); 	//Standard Icon
	wc.hCursor			= LoadCursor(NULL, IDC_ARROW);			// Standard Cursor Pfeil
	wc.hbrBackground	= (HBRUSH)GetStockObject(WHITE_BRUSH); 	//Hintergrund der Client Area
	wc.lpszMenuName 	= NULL;
	wc.lpszClassName	= szAppName;
	wc.hIconSm 			= LoadIcon( NULL, IDI_APPLICATION);

	return RegisterClassEx(&amp;wc);
}

BOOL InitInstance(int nCmdShow)
{
	HWND hWnd;
	hWnd = CreateWindow(
				szAppName,		 		//Name der Fensterklasse
				szTitle,				//Titel des Fensters
				WS_OVERLAPPEDWINDOW,	//Fensterstil //Lage des Fensters:					
				CW_USEDEFAULT,			//x-Koordinate
				0,						//y-Koordinate
				CW_USEDEFAULT,			//Fensterbreite
				0,						//Fensterhöhe
				NULL,					//Handle: Elternfenster
				NULL,					//Handle: Menue
				hInst,					//Handle des Programms
			NULL);					//Zeiger auf zusätzliche Daten
	if( !hWnd)
		return (FALSE);
	ShowWindow(hWnd, nCmdShow);		//Fenster anzeigen.
	UpdateWindow(hWnd);				//WM_PAINT-Meldung
	return(TRUE);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/207735/problem-mit-wndproc</link><generator>RSS for Node</generator><lastBuildDate>Sat, 25 Apr 2026 16:26:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/207735.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 11 Mar 2008 10:40:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit WndProc on Tue, 11 Mar 2008 10:40:13 GMT]]></title><description><![CDATA[<p>Mahlzeit!</p>
<p>Bin gerade dabei mich in die Windows Programmierung einzuarbeiten und stecke gleich mal beim ersten Programm mit folgender Fehlermeldung fest:</p>
<p>&quot;undefined reference to `_Z7WndProcP6HWND__jjl@16'&quot;</p>
<p>Benutze die Eclipse C/C++ IDE mit dem MingW/G++ Compiler. Bibliotheken sind eingebunden, -mwindows is auch gesetzt. Was läuft hier falsch? <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>Danke im voraus!</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;
// Globale Variablen
HINSTANCE hInst  	= 0;		// Programm-Handle
char szAppName[] 	= &quot;Basis&quot;; 	// Name der Anwendung
char szTitle[100]	= &quot;Hallo Windows&quot;;	// Fenstertitel

// Prototypen eigener Funktionen

BOOL InitApplication();
BOOL InitInstance(int);
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

// Der Programm Einstiegspunkt
int WINAPI WinMain(	HINSTANCE hInstance,
					HINSTANCE hPrevInstance,
					LPSTR	  lpCmdLine,
					int		  nCmdShow)
{
	MSG msg;				// Platz für eine Message
	hInst = hInstance; 		// Handle der Instanz an eine globale Variable zuweisen
	if(!InitApplication())	// Fenster registrieren
		return FALSE;
	if(!InitInstance(nCmdShow))	// Hauptfenster erzeugen
		return FALSE;
	while(GetMessage(&amp;msg,NULL,0,0)) //Meldungsschleife
	{
		TranslateMessage(&amp;msg);
		DispatchMessage(&amp;msg);
	}
	return (msg.wParam);
}

//--------------------Fortsetzung----------------------

BOOL InitApplication()
{
	WNDCLASSEX wc;							//Fensterklasse

//Die Eigenschaften der Fensterklasse festlegen:

	wc.cbSize 	= sizeof(WNDCLASSEX);								//Anzahl Byte dieser Struktur
	wc.style 			= CS_HREDRAW | CS_VREDRAW;				// Fensterstile
	wc.lpfnWndProc 		= (WNDPROC) WndProc;						// Fensterprozedur
	wc.cbClsExtra 		= 0;									//Hier kann zusätzlicher Speicher reserviert werden
	wc.cbWndExtra 		= 0;									//den das Programm für eigene Zwecke nutzt.
	wc.hInstance 		= hInst;								//Handle dieser Instanz											
	wc.hIcon			= LoadIcon( NULL, IDI_APPLICATION); 	//Standard Icon
	wc.hCursor			= LoadCursor(NULL, IDC_ARROW);			// Standard Cursor Pfeil
	wc.hbrBackground	= (HBRUSH)GetStockObject(WHITE_BRUSH); 	//Hintergrund der Client Area
	wc.lpszMenuName 	= NULL;
	wc.lpszClassName	= szAppName;
	wc.hIconSm 			= LoadIcon( NULL, IDI_APPLICATION);

	return RegisterClassEx(&amp;wc);
}

BOOL InitInstance(int nCmdShow)
{
	HWND hWnd;
	hWnd = CreateWindow(
				szAppName,		 		//Name der Fensterklasse
				szTitle,				//Titel des Fensters
				WS_OVERLAPPEDWINDOW,	//Fensterstil //Lage des Fensters:					
				CW_USEDEFAULT,			//x-Koordinate
				0,						//y-Koordinate
				CW_USEDEFAULT,			//Fensterbreite
				0,						//Fensterhöhe
				NULL,					//Handle: Elternfenster
				NULL,					//Handle: Menue
				hInst,					//Handle des Programms
			NULL);					//Zeiger auf zusätzliche Daten
	if( !hWnd)
		return (FALSE);
	ShowWindow(hWnd, nCmdShow);		//Fenster anzeigen.
	UpdateWindow(hWnd);				//WM_PAINT-Meldung
	return(TRUE);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1471940</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1471940</guid><dc:creator><![CDATA[Floh85]]></dc:creator><pubDate>Tue, 11 Mar 2008 10:40:13 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit WndProc on Tue, 11 Mar 2008 10:59:49 GMT]]></title><description><![CDATA[<p>Du hast die WindowProc nur deklariert. Die Definition fehlt noch <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/1471955</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1471955</guid><dc:creator><![CDATA[mad_martin]]></dc:creator><pubDate>Tue, 11 Mar 2008 10:59:49 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit WndProc on Tue, 11 Mar 2008 11:02:17 GMT]]></title><description><![CDATA[<p>Wäre nett, wenn Du dazuschreiben könntest, in welcher Zeile der Fehler auftritt.</p>
<p>Zunächst einmal fällt auf, daß Du die Initialisierung des Fensters und die CreateWindow in verschiedene Funktionen gepackt hast. Das macht eigentlich keinen Sinn. Laß die beiden Funktionen Initinstance und InitApplication weg und schreib die wc-Deklarationen und die CreateWindow in die WinMain.</p>
<p>Der Fehler kommt vermutlich davon, weil Du wc.lpfnWndProc = (WNDPROC) WndProc in eine Funktion gepackt hast. Nach Abschluß der Funktion wird die WndClass aber ungültig. Dann findet der Compiler eine WndProc, die nicht deklariert oder nicht zugewiesen ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1471958</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1471958</guid><dc:creator><![CDATA[Elektronix]]></dc:creator><pubDate>Tue, 11 Mar 2008 11:02:17 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit WndProc on Tue, 11 Mar 2008 11:36:14 GMT]]></title><description><![CDATA[<p>Elektronix schrieb:</p>
<blockquote>
<p>Wäre nett, wenn Du dazuschreiben könntest, in welcher Zeile der Fehler auftritt.</p>
</blockquote>
<p>Linkerfehler sind selten Zeilennummern zugeordnet <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>
<p>Elektronix schrieb:</p>
<blockquote>
<p>Der Fehler kommt vermutlich davon, weil Du wc.lpfnWndProc = (WNDPROC) WndProc in eine Funktion gepackt hast. Nach Abschluß der Funktion wird die WndClass aber ungültig. Dann findet der Compiler eine WndProc, die nicht deklariert oder nicht zugewiesen ist.</p>
</blockquote>
<p>Das ist Unsinn.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1471976</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1471976</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Tue, 11 Mar 2008 11:36:14 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit WndProc on Tue, 11 Mar 2008 11:42:28 GMT]]></title><description><![CDATA[<p>Elektronix schrieb:</p>
<blockquote>
<p>Der Fehler kommt vermutlich davon, weil Du wc.lpfnWndProc = (WNDPROC) WndProc in eine Funktion gepackt hast. Nach Abschluß der Funktion wird die WndClass aber ungültig.</p>
</blockquote>
<p>Darum registriert man sie ja auch vorher. Die WNDCLASS-Struktur wird danach afaik nicht mehr gebraucht.</p>
<p>Elektronix schrieb:</p>
<blockquote>
<p>Dann findet der Compiler eine WndProc, die <strong>nicht deklariert</strong> oder nicht zugewiesen ist.</p>
</blockquote>
<p>Deklariert ist sie, nur die <strong>Definition</strong> fehlt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1471985</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1471985</guid><dc:creator><![CDATA[mad_martin]]></dc:creator><pubDate>Tue, 11 Mar 2008 11:42:28 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit WndProc on Tue, 11 Mar 2008 13:14:42 GMT]]></title><description><![CDATA[<p>mad_martin schrieb:</p>
<blockquote>
<p>Elektronix schrieb:</p>
<blockquote>
<p>Dann findet der Compiler eine WndProc, die <strong>nicht deklariert</strong> oder nicht zugewiesen ist.</p>
</blockquote>
<p>Deklariert ist sie, nur die <strong>Definition</strong> fehlt.</p>
</blockquote>
<p>Verflixt, das bring ich doch immer durcheinander... <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/1472048</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1472048</guid><dc:creator><![CDATA[Elektronix]]></dc:creator><pubDate>Tue, 11 Mar 2008 13:14:42 GMT</pubDate></item></channel></rss>