WinApi Problem

FSA

Erfahrenes Mitglied
Hallo
Ich habe mal eine Frage:
Ich habe ein neues win32 projekt mit visualC++ 2010 erstellt und habe nun folgenden Code geschrieben:
C++:
#pragma comment(lib,"user32.lib")
#pragma comment(lib,"gdi32.lib")

#include <Windows.h>
#include "resource.h"


LRESULT	WINAPI	WindowProc(HWND hWindow, unsigned int uiMessage, WPARAM WParam, LPARAM LParam);

int WINAPI WinMain(HINSTANCE hInstance,
				   HINSTANCE hPrevInstance,
				   char* pcCmdLine,
				   int iShowCmd)
{
	int iWidth = 800;
					int iHeight = 600;
					char* pcName = "T";
					HWND g_hWindow;

	WNDCLASSEX WindowClass = {sizeof(WNDCLASSEX), CS_CLASSDC, WindowProc, 0, 0,
		                      GetModuleHandle(NULL), LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1)), LoadCursor(NULL, MAKEINTRESOURCE(IDC_ARROW)), NULL,
													NULL, "window", NULL};

	RegisterClassEx(&WindowClass);

	RECT Rect;
	SetRect(&Rect, 0, 0, iWidth, iHeight);
	AdjustWindowRect(&Rect, WS_VISIBLE | WS_OVERLAPPEDWINDOW, FALSE);
	iWidth = Rect.right - Rect.left;
	iHeight = Rect.bottom - Rect.top;

	// Fenster erstellen und prüfen
	g_hWindow = CreateWindow("window",
		                     pcName,
                             WS_VISIBLE | WS_OVERLAPPEDWINDOW,
							 GetSystemMetrics(SM_CXSCREEN) / 2 - iWidth / 2,
							 GetSystemMetrics(SM_CYSCREEN) / 2 - iHeight / 2,
							 iWidth,
							 iHeight,
							 NULL,
							 NULL,
							 GetModuleHandle(NULL),
							 NULL);

	return 0;
}
Ich weiß da ist noch keine nachrichtenschleife drin ist ja auch nur zum test...
aber naja jedenfalls bekomme ich einen linkerfhler LNK2019:
Code:
Fehler	1	error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""long __stdcall WindowProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WindowProc@@YGJPAUHWND__@@IIJ@Z)" in Funktion "_WinMain@16".  Main.obj
was mache ich da falsch?
Ziel ist nur ein Fenster was sich von mir aus auch auhängt ^^
DankMFG
 
Zuletzt bearbeitet von einem Moderator:
Hallo,

Dein Problem liegt darin, dass du WindowProc nur deklariert, aber nicht definiert hast. Den Fehler bekommst du weil du einen Funktionspointer auf diese nicht definierte Funktion an die WindowClass übergibst.
Das Problem gilt aber ganz allgemein für Funktionspointer. Man kann einfach nicht einen Pointer auf etwas erstellen das es nicht gibt.
 
Zurück