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

Sergeant

Frischling

  • »Sergeant« ist der Autor dieses Themas

Beiträge: 46

Wohnort: Kiel

Beruf: Student

  • Private Nachricht senden

1

07.06.2008, 19:07

Kapitel 10.4

Ich hab jetzt schon alles durchsucht... Ich komm einfach nicht auf eine Lösung. Mal ist es ein Fehler weniger oder auch mal zwei. Oder es ist plötzlich einer mehr...
Worum es geht? Um das hier:

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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#include <windows.h>

// Prototypen
LRESULT CALLBACK WindowProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
HWND createmainwindow (HINSTANCE hInst);
void createelements (HWND hWnd, HINSTANCE hInst);

#define ID_STATICTEXT 4000
#define ID_EDITBOX 4001
#define ID_BTNUEBERNEHMEN 4002
#define ID_BTNBEENDEN 4003

HWND htext;
HWND heditbox;
HWND huebernehmen;
HWND hbeenden;

// Hauptfunktion
int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpcmdline, int ncmdshow) {
    HWND hWnd;
    MSG message;

    hWnd = createmainwindow (hInst);
    if (hWnd == NULL)
        return (0);
    createelements (hWnd, hInst);

    while (GetMessage (&message, NULL, 0, 0)) {
        TranslateMessage (&message);
        DispatchMessage (&message);
    }
    return (int)(message.wParam);
}

// Funktionen
// -> createmainwindow: Fenster erstellen und Handle zurückliefern
HWND createmainwindow (HINSTANCE hInst) {
    HWND hWnd;
    WNDCLASSEX windowclass;
    const char szClassName = "Zweites Fenster";

    windowclass.cbSize = sizeof(WNDCLASSEX);
    windowclass.style = CS_HREDRAW | CS_VREDRAW;
    windowclass.lpfnWndProc = WindowProc;
    windowclass.cbClsExtra = 0;
    windowclass.cbWndExtra = 0;
    windowclass.hInstance = hInst;
    windowclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    windowclass.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
    windowclass.hCursor = LoadCursor(NULL, IDC_ARROW);
    windowclass.hbrBackground = (HBRUSH)COLOR_BACKGROUND+1;
    windowclass.lpszMenuName = NULL;
    windowclass.lpszClassName = szClassName;

    if(!RegisterClassEx (&windowclass))
        return (NULL);
    hWnd = CreateWindowEx (NULL,
                           szClassName,
                           "Eine kleine Anwendung",
                           WS_OVERLAPPEDWINDOW | WS_VISIBLE,
                           CW_USEDEFAULT | CW_USEDEFAULT,
                           300, 135,
                           NULL,
                           NULL,
                           hInst,
                           NULL);
    return (hWnd);
}

// -> createelements: Steuerelemente erstellen
void createelements (HWND hWnd, HINSTANCE hInst) {
    htext = CreateWindow ("STATIC",
                          "Eingegebener Text",
                          WS_VISIBLE | WS_CHILD | ES_CENTER,
                          0, 0,
                          300, 20,
                          hWnd,
                          (HMENU)ID_STATICTEXT,
                          hInst,
                          NULL);
    heditbox = CreateWindow ("EDIT",
                             "Bitte Text eingeben",
                             WS_VISIBLE | WS_CHILD | WB_BORDER,
                             0, 20,
                             300, 20,
                             hWnd,
                             (HMENU)ID_EDITBOX,
                             hInst,
                             NULL);
    huebernehmen = CreateWindow ("BUTTON",
                                 "Übernehmen",
                                 BS_PUSHBUTTON | WS_VISIBLE | WS_CHILD,
                                 20, 50,
                                 95, 40,
                                 hWnd,
                                 (HMENU)ID_BTNUEBERNEHMEN,
                                 hInst,
                                 NULL);
    hbeenden = CreateWindow ("BUTTON",
                             "Beenden",
                             BS_PUSHBUTTON | WS_VISIBLE | WS_CHILD,
                             175, 50,
                             95, 40,
                             hWnd,
                             (HMENU)ID_BTNBEENDEN,
                             hInst,
                             NULL);
}

// Callback-Funktion zur Nachrichtenverarbeitung
LRESULT CALLBACK WindowProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {
    switch (message) {
        case WM_DESTROY: {
            PostQuitMessage (0);
            return (0);
        }
        case WM_COMMAND: {
            switch (wParam) {
                case ID_BTNUEBERNEHMEN: {
                    char szText;
                    GetWindowText (heditbox, szText, 256);
                    SetWindowText (htext, szText);
                    SetWindowText (heditbox, "");
                    return (0);
                }
                case ID_BTNBEENDEN: {
                    int resultat;
                    resultat = MessageBox (hWnd, "Wirklich beenden?", "Programm beenden", MB_YESNO | MB_ICONQUESTION);
                    if (resultat == IDYES) {
                        PostQuitMessage (0);
                        return (0);
                    }
                    return (0);
                }
            }
            break;
        }
        break;
    }
    return (DefWindowProc (hWnd, message, wParam, lParam));
}


Und das hier sind die Fehler:

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
1>------ Erstellen gestartet: Projekt: listing10_3, Konfiguration: Debug Win32 ------
1>Kompilieren...
1>listing10_3.cpp
1>c:\dokumente und einstellungen\xxx\eigene dateien\visual studio 2008\projects\listing10_3\listing10_3\listing10_3.cpp(40) : error C2440: 'Initialisierung': 'const char [16]' kann nicht in 'const char' konvertiert werden
1>        Es gibt keinen Kontext, in dem diese Konvertierung möglich ist
1>c:\dokumente und einstellungen\xxx\eigene dateien\visual studio 2008\projects\listing10_3\listing10_3\listing10_3.cpp(53) : error C2440: '=': 'const char' kann nicht in 'LPCWSTR' konvertiert werden
1>        Die Konvertierung eines ganzzahligen Typs in einen Zeigertyp erfordert ein reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat
1>c:\dokumente und einstellungen\xxx\eigene dateien\visual studio 2008\projects\listing10_3\listing10_3\listing10_3.cpp(66) : error C2660: 'CreateWindowExW': Funktion akzeptiert keine 11 Argumente
1>c:\dokumente und einstellungen\xxx\eigene dateien\visual studio 2008\projects\listing10_3\listing10_3\listing10_3.cpp(80) : error C2664: 'CreateWindowExW': Konvertierung des Parameters 2 von 'const char [7]' in 'LPCWSTR' nicht möglich
1>        Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>c:\dokumente und einstellungen\xxx\eigene dateien\visual studio 2008\projects\listing10_3\listing10_3\listing10_3.cpp(89) : error C2065: 'WB_BORDER': nichtdeklarierter Bezeichner
1>c:\dokumente und einstellungen\xxx\eigene dateien\visual studio 2008\projects\listing10_3\listing10_3\listing10_3.cpp(89) : error C2664: 'CreateWindowExW': Konvertierung des Parameters 2 von 'const char [5]' in 'LPCWSTR' nicht möglich
1>        Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>c:\dokumente und einstellungen\xxx\eigene dateien\visual studio 2008\projects\listing10_3\listing10_3\listing10_3.cpp(98) : error C2664: 'CreateWindowExW': Konvertierung des Parameters 2 von 'const char [7]' in 'LPCWSTR' nicht möglich
1>        Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>c:\dokumente und einstellungen\xxx\eigene dateien\visual studio 2008\projects\listing10_3\listing10_3\listing10_3.cpp(107) : error C2664: 'CreateWindowExW': Konvertierung des Parameters 2 von 'const char [7]' in 'LPCWSTR' nicht möglich
1>        Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>c:\dokumente und einstellungen\xxx\eigene dateien\visual studio 2008\projects\listing10_3\listing10_3\listing10_3.cpp(121) : error C2664: 'GetWindowTextW': Konvertierung des Parameters 2 von 'char' in 'LPWSTR' nicht möglich
1>        Die Konvertierung eines ganzzahligen Typs in einen Zeigertyp erfordert ein reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat
1>c:\dokumente und einstellungen\xxx\eigene dateien\visual studio 2008\projects\listing10_3\listing10_3\listing10_3.cpp(122) : error C2664: 'SetWindowTextW': Konvertierung des Parameters 2 von 'char' in 'LPCWSTR' nicht möglich
1>        Die Konvertierung eines ganzzahligen Typs in einen Zeigertyp erfordert ein reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat
1>c:\dokumente und einstellungen\xxx\eigene dateien\visual studio 2008\projects\listing10_3\listing10_3\listing10_3.cpp(123) : error C2664: 'SetWindowTextW': Konvertierung des Parameters 2 von 'const char [1]' in 'LPCWSTR' nicht möglich
1>        Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>c:\dokumente und einstellungen\xxx\eigene dateien\visual studio 2008\projects\listing10_3\listing10_3\listing10_3.cpp(128) : error C2664: 'MessageBoxW': Konvertierung des Parameters 2 von 'const char [18]' in 'LPCWSTR' nicht möglich
1>        Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\xxx\Eigene Dateien\Visual Studio 2008\Projects\listing10_3\listing10_3\Debug\BuildLog.htm" gespeichert.
1>listing10_3 - 12 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========


kann mir jemand erklären, woran das alles liegen soll? ich hab wie gesagt nichts gefunden, das alle fehler beseitigt (nein, kombinationen auch nicht... die machen es eher schlimmer)...

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Sergeant« (19.08.2010, 17:23)


grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

2

07.06.2008, 19:36

Fang da an
https://www.spieleprogrammierer.de/phpBB2/viewtopic.php?t=9030

Sergeant

Frischling

  • »Sergeant« ist der Autor dieses Themas

Beiträge: 46

Wohnort: Kiel

Beruf: Student

  • Private Nachricht senden

3

07.06.2008, 19:58

ah, es geht tatsächlich. danke dir.
den link muss ich bookmarken ^^

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

4

08.06.2008, 00:00

Huch, hatte jetzt nich soo genau hingeguckt und eher gedacht, dass du dannach noch mit 1-2 Restfehlern weiterarbeiten musst.

Dass es gleich komplett geholfen hat freut mich natürlich :D

Sergeant

Frischling

  • »Sergeant« ist der Autor dieses Themas

Beiträge: 46

Wohnort: Kiel

Beruf: Student

  • Private Nachricht senden

5

08.06.2008, 00:27

naja. ich musste danach noch wieder kurz was ändern im code, aber das war nicht weiter wild

Faule Socke

Community-Fossil

Beiträge: 1 915

Wohnort: Schreibtischstuhl

  • Private Nachricht senden

6

08.06.2008, 01:33

Quellcode

1
const char szClassName = "Zweites Fenster";


Wäre noch zusätzlich falsch gewesen, aber weitergucken muss ich ja net :D

PS: Du hast ein [] hinter dem Variablenname vergessen. ein * hinter char wäre auch zulässig gewesen.

Socke

Sergeant

Frischling

  • »Sergeant« ist der Autor dieses Themas

Beiträge: 46

Wohnort: Kiel

Beruf: Student

  • Private Nachricht senden

7

08.06.2008, 09:03

eben das war das zusätzliche. aber habs ja gelöst bekommen.

Werbeanzeige