Problem mit Programm aus Tutorial

Hardware, Software, Webdesign & Coding.

Moderator: Katana

Antworten
Benutzeravatar
Enlil
Beiträge: 4280
Registriert: Sa Jan 20, 2001 1:01 am

Problem mit Programm aus Tutorial

Beitrag 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;
}
Benutzeravatar
DarkZero
Beiträge: 2342
Registriert: So Jul 15, 2001 12:01 am

Beitrag von DarkZero »

Vielleicht ist es schon zu spät, ich seh keinen Fehler, aber eigentlich müsste das Ding ein Fenster anzeigen...
満足したら終でしょう!
Homepage: DarkZero's Translations
Bild Renault Fahrer
Antworten