Windows-Fenster erstellen



  • Hallo,
    Ich habe eine kurze Frage und zwar habe ich mir auf einer Seite ein Tutorial zur Windows-Form Erstellung durchgelesen und versucht es zum compilen. Es ergeben sich allerdings 2 Fehler und ich habe keine Ahnung was das bedeutet (Wie gesagt es ist der Quellcode aus einem Tutorial).

    ZeroMemory(&WndClassEx, sizeof(WNDCLASSEX));
    
    	WndClassEx.cbSize = sizeof(WNDCLASSEX);
    	WndClassEx.style = CS_HREDRAW | CS_VREDRAW;
    	WndClassEx.lpfnWndProc = WindowProc;             //FEHLER 1
    	WndClassEx.hInstance = hInstance;
    	WndClassEx.hCursor = LoadCursor(NULL, IDC_ARROW);
    	WndClassEx.lpszClassName = L"MasterWindow";      //FEHLER 2
    
    	RegisterClassEx(&WndClassEx);
    
    	hWnd = CreateWindowEx(NULL, L"MasterWindow", L"SimpleSpaceshipGame2D",
                   WS_OVERLAPPEDWINDOW, 300, 300, WINDOWWIDTH, WINDOWHEIGHT, NULL,
                   NULL, hInstance, NULL);                   //FEHLER 3
    
    	ShowWindow(hWnd, 0);
    

    Bei der ersten Stelle sagt mir VS dass die Argumentliste fehlt, und ich ein & vornedransetzen soll um einen Zeiger zu erstellen. (Wenn ich das tue kommt allerdings "Ungültige Operation auf Ausdruck einer gebundenen Memberfunktion")

    Bei der zweiten und dritten Stelle heißt es, dass const wchar_t[13] nicht in LPCSTR konvertiert werden kann. Normalerweise würde ich einfach ein (LPCSTR) vorranstellen, aber irgendwie geht dadurch der Text verloren (oder muss ich einen Zeiger nehmen und mit (LPCSTR) casten?)

    Ich würde mich über Hilfe sehr freuen.

    MFG
    Neokil

    Edit: Das Tutorial war von http://www.directxtutorial.com/Tutorial9/A-Win32/dx9A3.aspx



  • hast du deine window-callback function im header deklariert?
    beim zweiten und dritten nja mach einfach mal das "L" davor weg...



  • Danke also die zwei letzten Fehler habe ich jetzt nicht mehr.
    Der erste Fehler ist allerdings noch da:

    error C3867: "Window::WindowProc": Dem Funktionsaufruf fehlt die Argumentliste. Verwenden Sie "&Window::WindowProc", um einen Zeiger auf den Member zu erstellen.
    error C2440: '=': 'LRESULT (__stdcall Window::* )(HWND,UINT,WPARAM,LPARAM)' kann nicht in 'WNDPROC' konvertiert werden
    

    Aber ich habe die Funktion schon richtig definiert oder?

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




  • danke ich habe jetzt die Funktion außerhalb der Klasse als static definiert und es funktioniert.

    MFG
    Neokil


Anmelden zum Antworten