weis nicht wo der Fehler steckt???:-(



  • #define STRICT
    #undef UNICODE
    #include <windows.h>
    
    // Deklaration Fensterprozedur (gewählter Name: WndProc) 
    //Zuständig für alle Ereignisse eines Fesnters 
    LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
    
    //Name des Fensters 
    const char szFensterName[]="Mein erstes Fenster";
    
    int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpszArgument,int nFunsterStil)
    {
    
        //------------------------------------------------------------------------------------
        HWND hWnd;// Handle für das HauptFenster
        MSG  msg;//  Nachrichten abholen und bearbeiten 
        WNDCLASS wc;// Struktur für Eigenschaften der Fensterklasse besetzen 
        //------------------------------------------------------------------------------------
        //Fenster Eigenschaften 
        wc.style = CS_HREDRAW|CS_VREDRAW;//Bei jeder Größenänderung ganzes Fenster neu zeichnen
        wc.lpfnWndProc = WndProc; // Zeiger auf Fensterprozedur
    
        wc.hInstance = hInstance;//Handle zu unserem Programm 
        wc.hCursor = LoadCursor (NULL, IDC_ARROW);//Standart Pfeil Cursor
        wc.hIcon = LoadIcon(NULL,IDI_APPLICATION);//Handle auf ein Icon
        wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);//Hintergrund Farbe festlegen
    
        wc.lpszClassName ="Name der Klasse";//Name des Fensters 
        wc.lpszMenuName = NULL;//menü name...in unserem fall brauchen wir kein Menü deshalb NULL
    
        //Hier kann man Festlegen ob mann zusätlichen Speicher für die Fesnterklasse bzw. das Fenster 
        //reservieren möchte, in unser Fall brauchen wir keinen Zusätlichen Speciehr 
        wc.cbClsExtra = 0;          
        wc.cbWndExtra = 0; 
    
        //Fenster Regestrieren 
        RegisterClass(&wc);        
    
        //Fenster erstellen
        hWnd=CreateWindow(szFensterName,"Erstes Fenster",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);
    
        //Fenster anzeigen lassen
        ShowWindow(hWnd,nFunsterStil);
    
    	while(GetMessage(&msg,NULL,0,0))
    	{
    			TranslateMessage(&msg);//Tastatur Nachrichten 
    			DispatchMessage(&msg);//Verteil die Nachrichten an die jeweilige Prozedur 
    	}
    
    	return msg.wParam;//beendung das Programm mit dem letzten interger wert, die GetMessge bearbeitet hat
    }
    
    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);
    }
    

    kein plan was ich falsch gemacht habe da kommt kein fenster und geht auch nichts mein compiler ist visuel studio 2008

    in fehler ausgabe steht nichts hilfreiches drin



  • HWND CreateWindow(      
        LPCTSTR lpClassName,
        LPCTSTR lpWindowName,
        DWORD dwStyle,
        int x,
        int y,
        int nWidth,
        int nHeight,
        HWND hWndParent,
        HMENU hMenu,
        HINSTANCE hInstance,
        LPVOID lpParam
    );
    

    classenname muss als erstes stehen, registriert hast du die klasse unter den namen "name der Klasse",...

    grüße



  • #define STRICT
    #undef UNICODE
    #include <windows.h>
    
    // Deklaration Fensterprozedur (gewählter Name: WndProc)
    //Zuständig für alle Ereignisse eines Fesnters
    LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
    
    //Name des Fensters
    const char szFensterName[]="Mein erstes Fenster";
    
    int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpszArgument,int nFunsterStil)
    {
    
        //------------------------------------------------------------------------------------
        HWND hWnd;// Handle für das HauptFenster
        MSG  msg;//  Nachrichten abholen und bearbeiten
        WNDCLASS wc;// Struktur für Eigenschaften der Fensterklasse besetzen
        //------------------------------------------------------------------------------------
        //Fenster Eigenschaften
        wc.style = CS_HREDRAW|CS_VREDRAW;//Bei jeder Größenänderung ganzes Fenster neu zeichnen
        wc.lpfnWndProc = WndProc; // Zeiger auf Fensterprozedur
    
        wc.hInstance = hInstance;//Handle zu unserem Programm
        wc.hCursor = LoadCursor (NULL, IDC_ARROW);//stan**** Pfeil Cursor
        wc.hIcon = LoadIcon(NULL,IDI_APPLICATION);//Handle auf ein Icon
        wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);//Hintergrund Farbe festlegen
    
        wc.lpszClassName =szFensterName;//Name des Fensters
        wc.lpszMenuName = NULL;//menü name...in unserem fall brauchen wir kein Menü deshalb NULL
    
        //Hier kann man Festlegen ob mann zusätlichen Speicher für die Fesnterklasse bzw. das Fenster
        //reservieren möchte, in unser Fall brauchen wir keinen Zusätlichen Speciehr
        wc.cbClsExtra = 0;          
        wc.cbWndExtra = 0;
    
        //Fenster Regestrieren
        RegisterClass(&wc);        
    
        //Fenster erstellen
        hWnd=CreateWindow(szFensterName,"Erstes Fenster",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);
    
        //Fenster anzeigen lassen
        ShowWindow(hWnd,nFunsterStil);
    
        while(GetMessage(&msg,NULL,0,0))
        {
                TranslateMessage(&msg);//Tastatur Nachrichten
                DispatchMessage(&msg);//Verteil die Nachrichten an die jeweilige Prozedur
        }
    
        return msg.wParam;//beendung das Programm mit dem letzten interger wert, die GetMessge bearbeitet hat
    }
    
    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);
    }
    

    habs mal geändert aber geht trotzdem net 😕



  • Ok probier mal:

    hWnd = CreateWindow(
               szFensterName,         /* Classname */
               "Erstes Fenster",       /* Title Text */
               WS_OVERLAPPEDWINDOW, /* default window */
               CW_USEDEFAULT,       /* Windows decides the position */
               CW_USEDEFAULT,       /* where the window ends up on the screen */
               544,                 /* The programs width */
               375,                 /* and height in pixels */
               HWND_DESKTOP,        /* The window is a child-window to desktop */
               NULL,                /* No menu */
               hInstance,       /* Program Instance handler */
               NULL                 /* No Window Creation data */
               );
    

    CW_USEDEFAULT ?= 0
    dann wäre dein fenster an stelle 0,0 mit der größe 0x0, dann würdest du es auch nicht sehen,... denke ich mal

    grüße



  • [/code]"ErstesFenster.exe": "C:\Dokumente und Einstellungen\what\Eigene Dateien\Visual Studio 2008\Projects\ErstesFenster\Release\ErstesFenster.exe" geladen, Symbole wurden geladen.
    "ErstesFenster.exe": "C:\WINDOWS\system32\ntdll.dll" wurde geladen
    "ErstesFenster.exe": "C:\WINDOWS\system32\kernel32.dll" wurde geladen
    "ErstesFenster.exe": "C:\WINDOWS\system32\user32.dll" wurde geladen
    "ErstesFenster.exe": "C:\WINDOWS\system32\gdi32.dll" wurde geladen
    "ErstesFenster.exe": "C:\WINDOWS\WinSxS\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_d08d0375\msvcr90.dll" geladen, Symbole wurden geladen.
    "ErstesFenster.exe": "C:\Programme\Kaspersky Lab\Kaspersky Internet Security 2009\mzvkbd.dll" wurde geladen
    "ErstesFenster.exe": "C:\WINDOWS\system32\psapi.dll" wurde geladen
    "ErstesFenster.exe": "C:\WINDOWS\system32\advapi32.dll" wurde geladen
    "ErstesFenster.exe": "C:\WINDOWS\system32\rpcrt4.dll" wurde geladen
    "ErstesFenster.exe": "C:\WINDOWS\system32\secur32.dll" wurde geladen
    "ErstesFenster.exe": "C:\Programme\Kaspersky Lab\Kaspersky Internet Security 2009\mzvkbd3.dll" wurde geladen
    "ErstesFenster.exe": "C:\Programme\Kaspersky Lab\Kaspersky Internet Security 2009\adialhk.dll" wurde geladen
    "ErstesFenster.exe": "C:\WINDOWS\system32\shlwapi.dll" wurde geladen
    "ErstesFenster.exe": "C:\WINDOWS\system32\msvcrt.dll" wurde geladen
    "ErstesFenster.exe": "C:\Programme\Kaspersky Lab\Kaspersky Internet Security 2009\kloehk.dll" wurde geladen
    "ErstesFenster.exe": "C:\WINDOWS\system32\uxtheme.dll" wurde geladen
    "ErstesFenster.exe": "C:\WINDOWS\system32\msctf.dll" wurde geladen

    Das Programm "[5148] ErstesFenster.exe: Systemeigen" wurde mit Code 0 (0x0) beendet.[code]

    also das Programm kommt ca fürn habe sekund und verschwindet dann
    also keine fehler mehr aber irgendwaws beendet das immer hab erst gedacht Kaspersky macht probleme dann habe ich es ausgeschaltet und nochmal versucht ging wieder net komisch



  • Also ich weiß definitv das folgender source funzt,
    Bloodshed Mingw

    #include <windows.h>
    
    /*  Declare Windows procedure  */
    LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
    
    /*  Make the class name into a global variable  */
    char szClassName[ ] = "WindowsApp";
    
    int WINAPI WinMain (HINSTANCE hThisInstance,
                        HINSTANCE hPrevInstance,
                        LPSTR lpszArgument,
                        int nFunsterStil)
    
    {
        HWND hwnd;               /* This is the handle for our window */
        MSG messages;            /* Here messages to the application are saved */
        WNDCLASSEX wincl;        /* Data structure for the windowclass */
    
        /* The Window structure */
        wincl.hInstance = hThisInstance;
        wincl.lpszClassName = szClassName;
        wincl.lpfnWndProc = WindowProcedure;      /* This function is called by windows */
        wincl.style = CS_DBLCLKS;                 /* Catch double-clicks */
        wincl.cbSize = sizeof (WNDCLASSEX);
    
        /* Use default icon and mouse-pointer */
        wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
        wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
        wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
        wincl.lpszMenuName = NULL;                 /* No menu */
        wincl.cbClsExtra = 0;                      /* No extra bytes after the window class */
        wincl.cbWndExtra = 0;                      /* structure or the window instance */
        /* Use Windows's default color as the background of the window */
        wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;
    
        /* Register the window class, and if it fails quit the program */
        if (!RegisterClassEx (&wincl))
            return 0;
    
        /* The class is registered, let's create the program*/
        hwnd = CreateWindowEx (
               0,                   /* Extended possibilites for variation */
               szClassName,         /* Classname */
               "Windows App",       /* Title Text */
               WS_OVERLAPPEDWINDOW, /* default window */
               CW_USEDEFAULT,       /* Windows decides the position */
               CW_USEDEFAULT,       /* where the window ends up on the screen */
               544,                 /* The programs width */
               375,                 /* and height in pixels */
               HWND_DESKTOP,        /* The window is a child-window to desktop */
               NULL,                /* No menu */
               hThisInstance,       /* Program Instance handler */
               NULL                 /* No Window Creation data */
               );
    
        /* Make the window visible on the screen */
        ShowWindow (hwnd, nFunsterStil);
    
        /* Run the message loop. It will run until GetMessage() returns 0 */
        while (GetMessage (&messages, NULL, 0, 0))
        {
            /* Translate virtual-key messages into character messages */
            TranslateMessage(&messages);
            /* Send message to WindowProcedure */
            DispatchMessage(&messages);
        }
    
        /* The program return-value is 0 - The value that PostQuitMessage() gave */
        return messages.wParam;
    }
    
    /*  This function is called by the Windows function DispatchMessage()  */
    
    LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
        switch (message)                  /* handle the messages */
        {
            case WM_DESTROY:
                PostQuitMessage (0);       /* send a WM_QUIT to the message queue */
                break;
            default:                      /* for messages that we don't deal with */
                return DefWindowProc (hwnd, message, wParam, lParam);
        }
    
        return 0;
    }
    

    grüüße


Anmelden zum Antworten