Probleme beim Erstellen eines "Normalen Fensters"



  • Hey Leute!

    Ich habe eine dringende Fragen:
    Ich habe in der WinApi zum lernen begonnen, einen Stundenplan zu schreiben und bin gerade eben an einen mir unerklärlichen Fehler geraten:

    Hier erstmal der Quellcode:

    //WinApi (main.cpp):
    
    #include <Windows.h>
    #include "Variablen und Definitionen.h"
    #include "Elemente.h"
    #include "Hauptfenster.h"
    
    HINSTANCE hInst;
    
    int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpcmdline, int ncmdshow)
    {
    	HWND		hWnd;
    	MSG		   message;     // Nachricht
    
    	hWnd = ErstelleFenster(hInst);
    
    	ErstelleElemente(hWnd, hInst);
    
    	// Prüfen, ob alles glatt ging
    	if (hWnd == NULL)
    		return (0);
    
    	while (GetMessage(&message, NULL, 0, 0))
    	{
    		TranslateMessage(&message);
    		DispatchMessage(&message);
    
    	}
    
    	return (int)(message.wParam);
    
    } // WinMain
    
    //ErstelleFenster (Hauptfenster.h):
    
    #include <Windows.h>
    
    HWND ErstelleFenster(HINSTANCE hInst);
    
    //ErstelleFenster (Hauptfenster.cpp):
    
    #include <Windows.h>
    #include "Elemente.h"
    
    HWND ErstelleFenster(HINSTANCE hInst)
    {
    	WNDCLASSEX windowclass; // Struktur für Fenstereigenschaften
    	HWND       hWnd;        // Fenster-Handle
    	LPCWSTR x;
    	const TCHAR szClassName[] = TEXT("Erstes Fenster");
    	x = TEXT("HauptmenüHintergrund.bmp");
    
    	// Größe der Struktur zwischenspeichern
    	windowclass.cbSize = sizeof (WNDCLASSEX);
    
    	// Fenster soll beim Verschieben neu gezeichnet werden
    	windowclass.style = CS_HREDRAW | CS_VREDRAW;
    
    	// Zeiger auf Callback-Funktion
    	windowclass.lpfnWndProc = WindowProc;
    
    	windowclass.cbClsExtra = 0;
    	windowclass.cbWndExtra = 0;
    
    	windowclass.hInstance = hInst;
    
    	// Icons und Cursor festlegen
    	windowclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    	windowclass.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
    	windowclass.hCursor = LoadCursor(NULL, IDC_ARROW);
    	windowclass.hbrBackground = CreatePatternBrush((HBITMAP)LoadImage(hInst, (x),
    		IMAGE_BITMAP, 0, 0,
    		LR_CREATEDIBSECTION | LR_LOADFROMFILE));
    
    	// Ein Menü brauchen wir nicht
    	windowclass.lpszMenuName = NULL;
    
    	windowclass.lpszClassName = szClassName;
    
    	// Fensterklasse registrieren
    	if (!RegisterClassEx(&windowclass))
    		return (0);
    
    	// Das Fenster erzeugen
    	hWnd = CreateWindowEx(NULL,
    		szClassName,
    		TEXT("Das erste Fenster!"),
    		WS_POPUP | WS_VISIBLE,
    		0, 0,
    		GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN),
    		NULL,
    		NULL,
    		hInst,
    		NULL);
    }//ErstelleFenster
    

    Wenn ich das Ausführe (mit Elemente.h und Elemente.cpp, welche ich aus Übersichtlichkeitsgründen weggelassen habe), bekomme ich diese Fehler:

    Fehler	8	error C2082: Neudefinition des formalen Parameters "hWnd"	
    Fehler	3	error C2091: Funktionsergebnis ist eine Funktion	
    Fehler	7	error C2091: Funktionsergebnis ist eine Funktion	
    Fehler	2	error C3646: "ErstelleFenster": Unbekannter 
    Fehler	6	error C3646: "ErstelleFenster": Unbekannter 
    Fehler	1	error C3646: "HWND": Unbekannter Überschreibungsspezifizierer	
    Fehler	5	error C3646: "HWND": Unbekannter Überschreibungsspezifizierer	
    Fehler	4	error C3861: "ErstelleFenster": Bezeichner wurde nicht gefunden.
    

    Das war vorher nicht, bevor nichts passierte und es nicht mehr ging 😞

    Hier der Ganze Code zum download und ausführen:

    http://www.file-upload.net/download-8320251/Stundenplan.zip.html

    MFG
    FERNman



  • Da du die Zeilenangaben bei den Fehlern nicht mitgepostet hast ist es etwas schwer ...
    Ich würde aber mal darauf tippen dass du irgendwo ne } Klammer vergessen hast, vermutlich in einem Header File.



  • Ok wenn du meinst:

    Hier der Fehler"Code" mit Zeilenangaben:

    Fehler	8	error C2082: Neudefinition des formalen Parameters "hWnd"	    D:\programme\stundenplan\stundenplan\hauptfenster.cpp	7	1	Stundenplan
    Fehler	3	error C2091: Funktionsergebnis ist eine Funktion	D:\programme\stundenplan\stundenplan\hauptfenster.h	3	1	Stundenplan
    Fehler	7	error C2091: Funktionsergebnis ist eine Funktion	D:\programme\stundenplan\stundenplan\hauptfenster.cpp	5	1	Stundenplan
    Fehler	2	error C3646: "ErstelleFenster": Unbekannter Überschreibungsspezifizierer	D:\programme\stundenplan\stundenplan\hauptfenster.h	3	1	Stundenplan
    Fehler	6	error C3646: "ErstelleFenster": Unbekannter Überschreibungsspezifizierer	D:\programme\stundenplan\stundenplan\hauptfenster.cpp	4	1	Stundenplan
    Fehler	1	error C3646: "HWND": Unbekannter Überschreibungsspezifizierer	D:\programme\stundenplan\stundenplan\hauptfenster.h	3	1	Stundenplan
    Fehler	5	error C3646: "HWND": Unbekannter Überschreibungsspezifizierer	D:\programme\stundenplan\stundenplan\hauptfenster.cpp	4	1	Stundenplan
    Fehler	4	error C3861: "ErstelleFenster": Bezeichner wurde nicht gefunden.	D:\programme\stundenplan\stundenplan\main.cpp	13	1	Stundenplan
    


  • Ja, ich weiß jetzt nicht was das Problem war, ich habe jetzt einfach eine neue Datei erstellt und den Großteil des Codes kopiert.

    MFG
    FERNman


Anmelden zum Antworten