Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

14.03.2007, 16:50

Problem bei Kapitel 10.3.1

Ich habe die Quellcodeausschnitte aus Kapitel 10.3.1 in das Listing 10.1 aufgenommen. Hier ist der Quelltext:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#include <windows.h>
#define ID_BEISPIELTEXT 4000;
LRESULT CALLBACK msgHandler(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nCmdShow)
{
    HWND hWnd;
    HWND hText;
    WNDCLASSEX wndClass;
    MSG msg;
    const char szClassName[] = "Erstes Fenster";
    wndClass.cbSize = sizeof(WNDCLASSEX);
    wndClass.style = CS_HREDRAW | CS_VREDRAW;
    wndClass.lpfnWndProc = msgHandler;
    wndClass.cbClsExtra = 0;
    wndClass.cbWndExtra = 0;
    wndClass.hIcon = LoadIcon (NULL, IDI_APPLICATION);
    wndClass.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
    wndClass.hCursor = LoadCursor (NULL, IDC_ARROW);
    wndClass.hbrBackground = (HBRUSH)COLOR_BACKGROUND+1;
    wndClass.lpszMenuName = NULL;
    wndClass.lpszClassName = szClassName;
    if(!(RegisterClassEx(&wndClass)))
    {
        MessageBox(0,"Fenster konnte nicht erzeugt werden!(InitApplication)","Fehler!",MB_OK);
        return 0;
    }
    hWnd = CreateWindowEx(
        NULL,
        szClassName,
        "Einfaches Fenster",
        WS_OVERLAPPEDWINDOW | WS_VISIBLE,
        0,0,
        300,250,
        NULL,
        NULL,
        hInst,
        NULL);

    hText = CreateWindow("STATIC",
        "Beispieltext",
        WS_OVERLAPPEDWINDOW | WS_CHILD,
        0,100,
        300,20,
        hWnd,
        (HMENU)ID_BEISPIELTEXT,
        hInst,
        NULL);

    if(hWnd == NULL)
    {
        MessageBox(0,"Fenster konnte nicht erzeugt werden!(CreateMainWindow)","Fehler!",MB_OK);
        return 0;
    }
    while(GetMessage(&msg,NULL,0,0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return (int(msg.wParam));
}
LRESULT CALLBACK msgHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    switch(msg)
    {
    case WM_DESTROY:
        {
            PostQuitMessage(0);
            return 0;
        }
    case WM_RBUTTONDOWN:
        {
            PostQuitMessage(0);
            return 0;
        }
    case WM_KEYDOWN:
        {
            switch(wParam)
            {
            case VK_ESCAPE:
                PostQuitMessage(0);
                return 0;
            }
        }
        break;
    }
    return (DefWindowProc(hWnd,msg, wParam, lParam));
}

Der compiler gibt aber folgendes aus:

Quellcode

1
2
3
4
5
6
7
8
9
10
------ Erstellen gestartet: Projekt: Windows, Konfiguration: Debug Win32 ------
Kompilieren...
main.cpp
.\main.cpp(47) : error C2143: Syntaxfehler: Es fehlt ')' vor ';'
.\main.cpp(47) : error C2660: 'CreateWindowExA': Funktion akzeptiert keine 10 Argumente
.\main.cpp(47) : error C2143: Syntaxfehler: Es fehlt ';' vor ','
.\main.cpp(47) : error C2059: Syntaxfehler: ')'
Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\Felix\Desktop\DirectX\Windows\Debug\BuildLog.htm" gespeichert.
Windows - 4 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========


kann mir jemand sagen was ich falsch gemacht habe? :?

Bösewicht

unregistriert

2

14.03.2007, 17:10

Nimm mal das ; nach der 4000 weg :)

3

14.03.2007, 17:11

oh man^^ danke

4

14.03.2007, 17:14

Fenster wird nicht angezeigt

ich hab jetzt das ; weggenommen aber das Fenster wird nicht mehr angezeigt. Kann mir jemand weiterhelfen?

SilentDragon

Alter Hase

Beiträge: 530

Wohnort: Köln

Beruf: Student

  • Private Nachricht senden

5

14.03.2007, 17:26

zeigt der denn neue Fehler an?
...

6

14.03.2007, 17:28

Nein er führt das Programm aus und zeigt nichts an

Bösewicht

unregistriert

7

14.03.2007, 17:32

Ich habe es kopiert und bei mir hat es geklappt, ich habe übrigens OVERLAPPEDWINDOW in VISIBLE abgeändert, vielleicht war das dein Problem.

8

14.03.2007, 17:34

ja jetzt funktioniert es

Werbeanzeige