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

17.01.2010, 14:22

Kapitel 10_1 Fehlerbericht

Hallo =)
ich verzweifel hier gerade..

ich arbeite momentan mit der 2ten Auflage von "C++ für Spieleprogrammierer" und bin an Kapitel 10_1 angelangt.
Ich arbeite mit Visual Basic 6.0 SP 6 und habe ein Problem beim Kapitel 10_1 sobald ich auf ausführen drücke bekomme ich einen Fehler von Windows:
"Test21.exe hat ein Problem festgestellt und muss beendet werden"

Ich habe auch "Microsoft Visual C++ 2008 Express Edition with SP1 - DEU"
da passiert dasselbe.

Kann es sein das ich mir ein neues Buch kaufen muss das mit Microsoft Visual C++ 2008 Express Edition arbeitet... ?

Außerdem funktionieren auch die Beispiele mit maps und multimaps ( 9_8 - 9_10) mit Visual Basic 6.0 SP 6 nicht.

Ich hoffe mir kann jemand helfen und Auskunft geben, bin noch ein blutiger Anfänger :?

Vielen Dank Fearesseres

2

17.01.2010, 14:31

Zitat

Visual Basic 6.0 SP 6

Für Visual Basic ist das buch das Falsche. Es geht um C++.

Zitat

Microsoft Visual C++ 2008 Express Edition with SP1 - DEU"

Wenn überhaupt sollte es mit dem Gehen. Neues Buch brauchste nicht, die müssten auf dem 2008 ohne Problems laufen.

Was sagt denn der Debugger, an welcher Stelle schmierts ab.
Ansonsten ein bisschen Code her![/code]

3

17.01.2010, 15:23

Halloo

ich muss mich Korrigieren, das ältere Programm mit dem ich arbeite heißt:
Microsoft Visual C++ 6.0 SP6

nun hier der Code:

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
// C++ für Spieleprogrammierer

// Listing 10.1

// Ein Windows-Grundgerüst

//


//Habe hier stdafx.h eingefügt da beim ersten Kompilieren ein Fehler auftrat und ich das einfügen soll

#include "stdafx.h"

//ab hier beginnt der Original Code

#include <windows.h> 



// Prototyp der Callback-Funktion

LRESULT CALLBACK WindowProc (HWND hWnd, UINT message,
                             WPARAM wParam, LPARAM lParam);

// Hauptprogramm

//

int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst,
                    LPSTR lpcmdline, int ncmdshow)
{
  WNDCLASSEX windowclass; // Struktur für Fenstereigenschaften

  HWND       hWnd;        // Fenster-Handle

  MSG        message;     // Nachricht


  // Der Klassen-Name des Fensters ist frei wählbar

  const char szClassName[] = "Erstes Fenster";

  // Struktur mit gewünschten Eigenschaften füllen

  //


  // Größe der Struktur zwischenspeichern

  windowclass.cbSize = sizeof (WNDCLASSEX);

  // Fenster soll beim Verschieben neu gezeichnet werden

  windowclass.style = CS_HREDRAW | CS_VREDRAW;

  // Zeiger auf Callback-Funktion

  windowclass.lpfnWndProc = WindowProc;

  // Keine erweiterten Einstellungen

  windowclass.cbClsExtra = 0;
  windowclass.cbWndExtra = 0;

  // Instanz speichern

  windowclass.hInstance = hInst;

  // Icons und Cursor festlegen

  windowclass.hIcon   = LoadIcon (NULL, IDI_APPLICATION);
  windowclass.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
  windowclass.hCursor = LoadCursor (NULL, IDC_ARROW);

  // Hintergrundfarbe festlegen

  windowclass.hbrBackground = (HBRUSH)COLOR_BACKGROUND+1;

  // Ein Menü brauchen wir nicht

  windowclass.lpszMenuName = NULL;

  // Klassenname angeben

//  windowclass.lpszClassName = szClassName;


  /* Fensterklasse registrieren <<<<<<<<<<<<<<<<Hier bleibt der Debugger stehen und zeigt mir einen Fehler an*/
 if (!RegisterClassEx (&windowclass) )
    return (0);

  // Das Fenster erzeugen

  hWnd = CreateWindowEx (NULL,
                        szClassName,
                    "Das erste Fenster!",
                         WS_OVERLAPPEDWINDOW | WS_VISIBLE,
                         100, 100,
                         300, 250,
                         NULL,
                         NULL,
                         hInst,
                         NULL);

  // Prüfen, ob alles glatt ging

  if (hWnd == NULL)
    return (0);

  // Der "Herzschlag" des Programms.

  // Hier werden alle Nachrichten abgeholt,

  // übersetzt und weitergeleitet.

  while (GetMessage (&message, NULL, 0, 0) )
  {
    TranslateMessage (&message);
    DispatchMessage (&message);

  }

  // Programm beenden

  return (int)(message.wParam);

} // WinMain



// Callback-Funktion zur Nachrichtenverarbeitung

//

LRESULT CALLBACK WindowProc (HWND hWnd, UINT message,
                             WPARAM wParam, LPARAM lParam)
{
  // Messages auswerten

  switch (message)
  {
    // Fenster schließen? (Auch Alt-F4)

    case WM_DESTROY:
    {
      // Nachricht zum Beenden schicken

      PostQuitMessage (0);
      return (0);

    }

    // Wurde eine Taste gedrückt?

    case WM_KEYDOWN:
    {
      // Ja, also je nach Taste verzweigen

      switch (wParam)
      {
        // Wurde "Escape" gedrückt?

        case VK_ESCAPE:
        {
          // Ja, also Nachricht zum Beenden schicken

          PostQuitMessage (0);
          return (0);

        }
      }
    } break;
  } 

  // Die Nachricht wurde nicht von uns verarbeitet, also

  // von Windows verarbeiten lassen.

  return (DefWindowProc (hWnd, message, wParam, lParam) );

} // WindowProc

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

4

17.01.2010, 15:32

warum ist das auskommentiert?

C-/C++-Quelltext

1
2
// Klassenname angeben

//  windowclass.lpszClassName = szClassName; 

das wieder aufnehmen dann stürzt es netmehr ab.

dann dem zweiten post folgen
https://www.spieleprogrammierer.de/phpBB…p=155507#155507
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

5

17.01.2010, 15:51

aaaach Grundgütiger -.-
das kommt davon, wenn man am Beispiel rumprobiert...
Habe das mit dem Unicode schon gemacht.

Vielen Dank an euch beiden!
jetzt habe ich wieder richtig lust weiter zu machen :D

Mfg Fearesseres

Werbeanzeige