You are not logged in.

  • Login

1

Monday, November 22nd 2010, 6:07pm

Mein erstes eigenes Win32 Fenster. Aber was ist daran falsch?

Hallo!
Ich bin neu auf diesem Forum, also will ich erstmal schöne Grüße und ein großes Hallo hier in die Runde rufen! :-D
Kommen wir zur Sache:
Ich hab ein Problem. Momentan lerne ich C++ aus dem Buch "C++ für Spieleprogrammierer" von Heiko Kalista.
Ich bin gerade in Kapitel 10. Dort wird ein Sample gezeigt, wie man ein eigenes Fenster erstellt.
Das sieht so aus:

C/C++ Quellcode

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
// C++ für Spieleprogrammierer
// Listing 10.1
// Ein Windows-Grundgerüst
//
#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[] = "First Window";
 
	// 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
	if (!RegisterClassEx (&windowclass) )
		return (0);
 
	// Das Fenster erzeugen
	hWnd = CreateWindowEx (NULL,
						   szClassName,
						   "First Window!",
						   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


Ja, Das Problem ist nur, dass mir jetzt beim kompilieren 2 fette Fehlermeldungen raus gehauen werden:

Quoted

------ Erstellen gestartet: Projekt: lernen021, Konfiguration: Debug Win32 ------
Fenster.cpp
q:\projekte c++\lernen021\lernen021\fenster.cpp(54): error C2440: '=': 'const char [13]' kann nicht in 'LPCWSTR' konvertiert werden
Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
q:\projekte c++\lernen021\lernen021\fenster.cpp(70): error C2664: 'CreateWindowExW': Konvertierung des Parameters 2 von 'const char [13]' in 'LPCWSTR' nicht möglich
Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========


Ich bitte euch, was ist daran falsch? Ich selbst kann es nicht lösen, dazu sind zu viel neue Begriffe enthalten. Dürften so 80% des ganzen Samples sein..... :-/
Ich danke schon mal für eure Hilfe.
mfg
ich^^

2

Monday, November 22nd 2010, 7:51pm

Hab das mal durch 2 Compiler gejagt.
Der eine gibt drei Warnungen, das ich vereinbarte Variable nicht nutze -> vernachlässigbar
Der andere gibt eine andere Warnung: winapi01.c|70|warning: passing argument 1 of 'CreateWindowExA' makes integer from pointer without a cast| -> das sollte man sich genauer ansehen, wenn es Probleme gibt.

Bei beiden Compilern ist das Ergebnis ein einfaches Fenster, was ja wohl beabsichtigt war.

So, welchen Compiler mit welchen Projekteinstellungen lässt du auf den Quelltext los?
Sind da Empfehlungen in deinem Buch zur Nutzung des Compilers?

So hab noch mal in der MSDN nachgesehen.
Versuche mal folgendes:

C/C++ Quellcode

1
2
3
4
5
6
7
8
9
10
hWnd = CreateWindowEx (WS_EX_LEFT,
                           szClassName,
                           "First Window!",
                           WS_OVERLAPPEDWINDOW | WS_VISIBLE,
                           100, 100,
                           300, 250,
                           NULL,
                           NULL,
                           hInst,
                           NULL);


Bin jetzt nicht des Spezi der Feinheiten - es scheint so das nicht bei allen Compilern NULL = 0L ist ;(

MfG bcc-fan

This post has been edited 2 times, last edit by "bcc-fan" (Nov 22nd 2010, 8:05pm) with the following reason: Ergänzung anhand MSDN


3

Monday, November 22nd 2010, 8:20pm

Ich benutze Microsoft Visual C++ 2010 Express.

Das Buch ist auch irgendwie doof, es zeigt die Beispiele nicht an wichtigen Beispielen, nein, an unwichtigen.
Zumal hat der Autor anscheinend einen Fimmel für Asteroid Games. Das End-Spiel (was ich gerade programmiere) ist so eins und in gut jedem Kapitel kommen Raumschiffe o.Ä. vor....
Naja egal. Mal so nebenbei, empfiehlt mir jemand ein GUTES Buch, wo es auch um die Spiele-Programmierung in 2D geht?

Das Syntax das du mir zeigst, werde ich gleich mal ausprobieren.

4

Monday, November 22nd 2010, 8:29pm

Sorry, kann Beitrag nicht editieren.... Mein Browser schließt sich sofort wenn ich es versuche....
Naja, es klappt auch dann nicht, wegen diesem Fehlers:

Quoted

------ Erstellen gestartet: Projekt: Lernen021, Konfiguration: Debug Win32 ------
Fenster.cpp
q:\projekte c++\lernen021\lernen021\fenster.cpp(128): fatal error C1010: Unerwartetes Dateiende während der Suche nach dem vorkompilierten Header. Haben Sie möglicherweise vergessen, im Quellcode "#include "StdAfx.h"" einzufügen?
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========


Vielleicht könnte ja ein Moderator das zusammenfügen.

5

Monday, November 22nd 2010, 8:32pm

Mensch Mensch Mensch, mein 3. Doppelpost....
Ich hab den Fehlerlog eben falsch ab kopiert, war ein anderes Projekt. Hier der richtige mit beigefügtem Vorschlag:

Quoted

------ Erstellen gestartet: Projekt: Fenster, Konfiguration: Debug Win32 ------
Fenster.cpp
q:\projekte c++\fenster\fenster\fenster.cpp(50): error C2440: '=': 'const char [13]' kann nicht in 'LPCWSTR' konvertiert werden
Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
q:\projekte c++\fenster\fenster\fenster.cpp(66): error C2664: 'CreateWindowExW': Konvertierung des Parameters 2 von 'const char [13]' in 'LPCWSTR' nicht möglich
Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

6

Monday, November 22nd 2010, 8:34pm

Hier mal wie Microsoft zur Zeit das Beispiel texten würde:
http://msdn.microsoft.com/de-de/library/bb384843.aspx

oben stehen da auch die Compilereinstellungen.

Solche kleine Nicklichkeiten wirst du immer wieder begegnen - mal hast du älteren Quelltext, den du in ein neueres Projekt einpassen willst - ein anderes Mal wurde ein Projekt mit einem anderen Compiler entwickelt. Da reicht manchmal schon eine andere Versionsnummer beim gleichen Compiler.

Hast ja gleichzeitig geschrieben - dann gibt deinem Compiler halt den Header den nur Microsoft gern hätte :D

Hab keinen Microsoft vergleiche mal das Beispiel aus meinem Link mit deinem Quelltext und versuche dann ein positives Ergebnis aus dem ganzen zu ziehen ;)

MfG bcc-fan

This post has been edited 1 times, last edit by "bcc-fan" (Nov 22nd 2010, 8:40pm)


7

Monday, November 22nd 2010, 8:37pm

Selbst da gibt es Fehler!

Quoted

------ Erstellen gestartet: Projekt: Fenster, Konfiguration: Debug Win32 ------
Fenster.cpp
q:\projekte c++\fenster\fenster\fenster.cpp(34): error C2065: 'szWindowClass': nichtdeklarierter Bezeichner
q:\projekte c++\fenster\fenster\fenster.cpp(69): error C2065: 'szWindowClass': nichtdeklarierter Bezeichner
q:\projekte c++\fenster\fenster\fenster.cpp(69): error C2065: 'szTitle': nichtdeklarierter Bezeichner
q:\projekte c++\fenster\fenster\fenster.cpp(121): error C2059: Syntaxfehler: ')'
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

8

Monday, November 22nd 2010, 8:45pm

Nun mal ganz langsam ;)
Hast du in deiner IDE das richtige Projekt ausgewählt?

Schau dir den Link von mir an. Hast du das alles so gemacht?

Anfänger beissen sich da öfter fest ;)

MfG bcc-fan

9

Monday, November 22nd 2010, 8:48pm

Ja habe ich.
Als Anfänger bin ich nur vom Forum-rang zu bezeichnen. Bin Gemäß dieses echt komischen Buches fortgeschritten, ich schätze mich aber in der goldenen Mitte ein.
Ich finde es einfach nur total Hirnlos, dass da nichts geht.... :-D

10

Monday, November 22nd 2010, 9:03pm

Hast du das Beispiel aus meinem Link bei dir schon compiliert und das läuft?

Wenn ja, dann vergleiche die beiden Quelltexte und versuche die Microsoftbesonderheiten in den Quelltext des Buches einzubauen.

Oder nimm einen Compiler der ohne grosse Änderungen den Quelltext aus dem Buch versteht ;)

MfG bcc-fan

11

Monday, November 22nd 2010, 9:11pm

ja ich hab auf den Link geklickt.
ja ich habe es auch schon angeglichen.
Und der Compiler des Buches ist eigentlich gleich, nur das ich statt Microsoft Visual C++ 2008 Express Microsoft Visual C++ 2010 Express benutze. Das 2008 bekommt man ja fast nirgendwo mehr.....

12

Monday, November 22nd 2010, 9:40pm

Ich kann mich irren, denke aber das der 2008er auch schon bei dem Quelltext Einwände hätte.

Dachte da eher an den gcc, so wie der Quelltext geschrieben ist. Der alte free BCC5.5 kommt mit dem Beispiel aus dem Buch noch am Besten ohne Anpassung klar.

Aber da du in die Spielegeschichte einsteigen willst ist wahrscheinlich dein Compiler die bessere Wahl. Musst halt nur das passende Buch oder Tutorial finden ;)
Oder den Quelltext umschreiben. Ich hab am Anfang meiner WinAPI_Schritte damals auch einiges Umschreiben dürfen, weil ich die Hälfte der Zeit damals mit einem anderen Compiler als von den Beispielen gewünscht unterwegs war. Wenn man wieder im Stoff drin ist, geht das schon. Heute brauchte ich wahrscheinlich wieder eine Auffrischung, aber zur Zeit zieht mich noch nix wieder ;)

MfG bcc-fan

13

Tuesday, November 23rd 2010, 7:48pm

Jetzt hab ich 2010 deinstalliert und 2008 installiert und jetzt geht es auch nicht. Eigentlich ja logisch, aber man weiß ja nie was Microsoft so macht und tut.... :-D
Joa, könnte mir denn jetzt jemand einen Code für ein einfaches, leeres Fenster geben?
Das wird in diesem Buch fast gar nicht behandelt, es sind nur 3 Quelltexte dazu da wobei nur der 1. einem Fenster obliegt und der 2. einer Aufgabe..... der 3. ist Konsolen-Anwendung.
Empfiehlt mir übrigens wer ein gutes Buch? Falls es hilft: Ich habe vor ein Jump´n Run zu machen.

14

Tuesday, November 23rd 2010, 8:07pm

Hast du denn den Code aus meinem Link zum MSDN compiliert?
Das sollte theoretisch ein einfaches Fenster nach Microsoft-Art sein.

MfG bcc-fan

15

Wednesday, November 24th 2010, 9:53am

Selbst da gibt es Fehler!

Quoted

------ Erstellen gestartet: Projekt: Fenster, Konfiguration: Debug Win32 ------
Fenster.cpp
q:\projekte c++\fenster\fenster\fenster.cpp(34): error C2065: 'szWindowClass': nichtdeklarierter Bezeichner
q:\projekte c++\fenster\fenster\fenster.cpp(69): error C2065: 'szWindowClass': nichtdeklarierter Bezeichner
q:\projekte c++\fenster\fenster\fenster.cpp(69): error C2065: 'szTitle': nichtdeklarierter Bezeichner
q:\projekte c++\fenster\fenster\fenster.cpp(121): error C2059: Syntaxfehler: ')'
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========



ahhhhh .... hier steht nicht nur code sondern auch Text !!! :thumbdown:

Beschäftige dich doch bitte mit den Fehlermeldungen. Du brächtest einfach nur mal nach "szWindowClass" und "szTitle" zu suchen, dann wirst du sehen das in dem vollständigen Beispiel folgende Zeilen fehlen:

C/C++ Quellcode

1
2
static TCHAR szWindowClass[] = _T("win32app");
static TCHAR szTitle[] = _T("Win32 Guided Tour Application");


Wenn du irgendetwas programmieren möchtest gehört es auch dazu Fehlermeldungen zu verstehen. Das das am Anfang schwierig ist und Zeit kostet und die später noch den ein oder anderen Nerv rauben wird ist ganz nomal, das erging und ergeht jedem so.


Übrigens solltest du mit VS auch ein leeres Window-Projekt erstellen können, dann hättest du dein Fenster gehabt ;)

16

Friday, November 26th 2010, 2:25pm

C/C++ Quellcode

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
// C++ für Spieleprogrammierer
// Listing 10.1
// Ein Windows-Grundgerüst
//
#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[] = "First Window";
 
	// 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
	if (!RegisterClassEx (&windowclass) )
		return (0);
 
	// Das Fenster erzeugen
hWnd = CreateWindowEx (WS_EX_LEFT,
                           szClassName,
                           "First Window!",
                           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


Sag mir bitte wo da szWindowClass und szTitle sind...
Ehrlich, ich finde es nicht.
Des weiteren weiß ich ja wo der Fehler ungefähr liegt, aber ich kann es nicht lösen.
Und: Ein leeres VS Projekt kann ich auch erzeugen, ich habe aus versehen das falsche Log-File kopiert - wie bereits erwähnt.

Könnte mir jemand den vollständigen Code posten? Danke!

17

Friday, November 26th 2010, 9:17pm

Ich denke Vince hat es bei sich getestet.

Ist es denn so schwer das Beispiel aus dem MSDN zu kopieren und die beiden Zeile, die Vince erwähnt hat, dem Compiler zugänglich zu machen?

Ist doch schon alles in dem Quelltext drin. 2 mal Zeilenvorschub ergänzen, dann hast du es doch.

Das bekommt doch fast jeder Anfänger hin, selbst, wenn er keinen Plan hat was er kopiert.

Ein wenig ratlos
bcc-fan

18

Friday, November 26th 2010, 9:33pm

Ich mache s jetzt einfach ohne coden.
Mache es jetzt per beigefügtem Fenster-Editor von Microsoft Visual C++ 2010 Express.

mfg
ich^^

19

Saturday, November 27th 2010, 12:34pm

Ich denke Vince hat es bei sich getestet.

negativ, hab nur osx :whistling:

Sag mir bitte wo da szWindowClass und szTitle sind...
Ehrlich, ich finde es nicht.


Du sollst auch nicht in dem fertigen Beispiel suchen, sondern in diesem Artikel !

Da gibt es nicht nur unten das fertige Beispiel sondern zu jedem Part auch ne schöne Erläuterung.
Wenn du denn nach "szWindowClass" suchst wirst du bei "So fügen Sie WinMain Funktionalität hinzu" Punkt 3 sehen das dort folgendes steht:

C/C++ Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
static TCHAR szWindowClass[] = _T("win32app");
static TCHAR szTitle[] = _T("Win32 Guided Tour Application");
// The parameters to CreateWindow explained:
// szWindowClass: the name of the application
// szTitle: the text that appears in the title bar
// WS_OVERLAPPEDWINDOW: the type of window to create
// CW_USEDEFAULT, CW_USEDEFAULT: initial position (x, y)
// 500, 100: initial size (width, length)
// NULL: the parent of this window
// NULL: this application dows not have a menu bar
// hInstance: the first parameter from WinMain
// NULL: not used in this application
HWND hWnd = CreateWindow(


im vollständigen Beispiel fehlen die beiden Deklarationen.

C/C++ Quellcode

1
2
static TCHAR szWindowClass[] = _T("win32app");
static TCHAR szTitle[] = _T("Win32 Guided Tour Application");



Das ist nen Fehler vom Autor, aber wie es bcc-fan geschrieben hat ...

Das bekommt doch fast jeder Anfänger hin, selbst, wenn er keinen Plan hat was er kopiert.

... brauchst du es nur an der Stelle einzufügen.

20

Wednesday, December 22nd 2010, 10:30pm

Sorry! Stand aufm Schlauch :rolleyes:

Allerdings ist jetzt noch der Syntaxfehler da. DOCH: Mach ich die )-Klammer weg, dann bekomme ich 4 Fehler. Das ist doch alles unnötig verkompliziert worden, echt...... :wacko:

Similar threads

Social bookmarks