Fenster anzeigen
-
Hi,
ich habe ein kleines Problem.
Und zwar habe ich mir auf Win-Api.de das Tutorial, welches das Anzeigen eines Fensters erklärt, angesehen. Nachdem ich den Code fertig hatte, konnte ich das Projekt leider nicht kompilieren, da mit Visual C++ eine Fehlermeldung ausgibt:1>------ Erstellen gestartet: Projekt: Windows, Konfiguration: Debug Win32 ------
1>Verknüpfen...
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z)" in Funktion "_WinMain@16".
1>G:\Users\fabian\Documents\Visual Studio 2008\Projects\Windows\Debug\Windows.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.
1>Das Buildprotokoll wurde unter "file://g:\Users\fabian\Documents\Visual Studio 2008\Projects\Windows\Windows\Debug\BuildLog.htm" gespeichert.
1>Windows - 2 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========Habe nochmal nachgesehen, ob alles stimmt und konnte keinen Fehler entdecken. Könnt ihr mir da helfen?
Edit: Hoppla, Code vergessen >_<
#include <windows.h> #include <iostream> const char szAppName[] = "Hallo Welt!"; LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { HWND hWnd; MSG msg; WNDCLASS wc; wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); wc.lpszClassName = szAppName; RegisterClass(&wc); hWnd = CreateWindow(szAppName, "Hallo Welt Titel!", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL); ShowWindow(hWnd, iCmdShow); UpdateWindow(hWnd); }
-
haiyyu schrieb:
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
Du hast diese Funktion nicht definiert.
-
Danke für die Antwort
Wie muss die definition aussehen, damit der Code funktioniert?
-
Eine ganz einfache könnte für den Anfang so aussehen:
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_DESTROY: PostQuitMessage (0) ; return 0 ; } return DefWindowProc (hwnd, message, wParam, lParam) ; }