Seite 1 von 1

Problem mit Programm aus Tutorial

Verfasst: Fr Mär 19, 2004 10:55 pm
von Enlil
Habe untenstehendes C-Programm aus einem Tutorial zu lernzwecken ausprobieren wollen. Das Programm wird auch kompiliert, aber Windows bricht das Programm immer ab. Da ich das Programm dann schließlich einfach nur gecopied und gepasted hab und das Elbe geschah, würde ich euch mal bitten, das Programm doch mal auf eurem Rechner zu starten und mir zu sgane, was pssiert ist. Evt. liegt es ja einfach an meinem Windows.. Schonmal vielen Dank!

EDIT: Das kompilierte Prog habe ich rausgenommen, da mir eingefallen ist, dass ich je nur die Autorenedition von Visual C++ habe und das Prog daher eh nur auf meinem Rechner läuft.

Code: Alles auswählen

#include <windows.h>

const char g_szClassName[] = "myWindowClass";

// Step 4: the Window Procedure
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    switch(msg)
    {
        case WM_CLOSE:
            DestroyWindow(hwnd);
        break;
        case WM_DESTROY:
            PostQuitMessage(0);
        break;
        default:
            return DefWindowProc(hwnd, msg, wParam, lParam);
    }
    return 0;
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
    LPSTR lpCmdLine, int nCmdShow)
{
    WNDCLASSEX wc;
    HWND hwnd;
    MSG Msg;

    //Step 1: Registering the Window Class
    wc.cbSize        = sizeof(WNDCLASSEX);
    wc.style         = 0;
    wc.lpfnWndProc   = WndProc;
    wc.cbClsExtra    = 0;
    wc.cbWndExtra    = 0;
    wc.hInstance     = hInstance;
    wc.hIcon         = LoadIcon(NULL, IDI_APPLICATION);
    wc.hCursor       = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
    wc.lpszMenuName  = NULL;
    wc.lpszClassName = g_szClassName;
    wc.hIconSm       = LoadIcon(NULL, IDI_APPLICATION);

    if(!RegisterClassEx(&wc))
    {
        MessageBox(NULL, "Window Registration Failed!", "Error!",
            MB_ICONEXCLAMATION | MB_OK);
        return 0;
    }

    // Step 2: Creating the Window
    hwnd = CreateWindowEx(
        WS_EX_CLIENTEDGE,
        g_szClassName,
        "The title of my window",
        WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT, CW_USEDEFAULT, 240, 120,
        NULL, NULL, hInstance, NULL);

    if(hwnd == NULL)
    {
        MessageBox(NULL, "Window Creation Failed!", "Error!",
            MB_ICONEXCLAMATION | MB_OK);
        return 0;
    }

    ShowWindow(hwnd, nCmdShow);
    UpdateWindow(hwnd);

    // Step 3: The Message Loop
    while(GetMessage(&Msg, NULL, 0, 0) > 0)
    {
        TranslateMessage(&Msg);
        DispatchMessage(&Msg);
    }
    return Msg.wParam;
}

Verfasst: Sa Mär 20, 2004 11:13 pm
von DarkZero
Vielleicht ist es schon zu spät, ich seh keinen Fehler, aber eigentlich müsste das Ding ein Fenster anzeigen...