Error C2065 - nicht dekl. Bezeichner / SDK

Skid

Erfahrenes Mitglied
Hallo,

also ich habe folgenden Fehler in meinem Programm:
Code:
Fehler	1	error C2065: 'msg': nichtdeklarierter Bezeichner

an der Stelle:

Code:
	MSG msg;
	while( TRUE )
	{
		if( PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) ) //C2065
		{
		}
	}

Meine Includes:
Code:
//----------------------------------------------------------------------------
// INCLUDE
//----------------------------------------------------------------------------
//#include <windows.h>
//#include <windowsx.h>
//#include <stdio.h>
//#include <conio.h>
#include <d3d9.h>

Der Fehler ist mir ehrlich gesagt recht unverständlich.

Ich habe auf MSDN schon nachgelesen, da stehen folgende Begründungen:
Code:
Mögliche Ursachen:

1. Es wird mit einer Debugversion der C-Laufzeit kompiliert, und dadurch in einer for-Schleife 
eine Iteratorvariable aus der Standard-C++-Bibliothek deklariert. Anschließend wird versucht, 
diese Iteratorvariable außerhalb des Gültigkeitsbereichs der for-Schleife zu verwenden. 
Kompilieren eines Standard-C++-Bibliothekscodes mit einer Debugversion der C-Laufzeit
impliziert /Zc:forScope. Weitere Informationen finden Sie unter Debugiterator-Unterstützung.
   
2. Sie rufen u. U. eine Funktion in einer SDK-Headerdatei auf, die in der aktuellen
Buildumgebung nicht unterstützt wird.
   
3. Erforderliche Includedateien fehlen, insbesondere bei der Definition von VC_EXTRALEAN, 
WIN32_LEAN_AND_MEAN oder WIN32_EXTRA_LEAN. Um die Kompilierung zu beschleunigen, 
werden durch diese Symbole einige Headerdateien aus windows.h und afxv_w32.h ausgeschlossen. 
(Überprüfen Sie die Dateien windows.h und afxv_w32.h auf eine aktuelle Beschreibung der 
ausgeschlossenen Dateien.)
   
4. Der Bezeichnername ist falsch geschrieben.
   
5. Im Bezeichnernamen wird eine falsche Groß-/Kleinschreibung verwendet.
   
6. Hinter einer Zeichenfolgenkonstante fehlt ein schließendes Anführungszeichen.
   
7. Falscher Gültigkeitsbereich für den Namespace. Um beispielsweise Funktionen und Operatoren 
der ANSI C++Standardbibliothek aufzulösen, müssen Sie den std-Namespace mit der using-Direktive 
angeben. Der folgende Beispielcode wird nicht kompiliert, da die using-Direktive auskommentiert 
und cout im std-Namespace definiert wird:

Quelle

Mit 3tens kan nichnicht wirklich was anfangen, habe das schonmal irgendwo gelesen, dachte aber dass das zu dem Tutorial gehören würde.
Fehler 4, 5 und 6 kann ich ausschließen.
Ich tippe ehrlich gesagt auf den zweiten Fehler, bin mir jedoch nicht sicher wie ich den Fehler hier auflösen soll.

Kurioserweise habe ich ein paar Tage zuvor schonmal ein ähnliches Programm geschrieben, was additiv dazu noch DispachMessage bzw. TranslateMessage in der If-Condition geschrieben wurde und es funktionierte.
Leider weiss ich nicht, was ich dort gravierend anderes gemacht habe ...

Vielleicht hat jemand von euch eine Lösung parat!

Danke schön,
Skid.
 
Hi.

Bist du dir sicher, das du den richtigen Code betrachtest (speichern nicht vergessen, falsche Datei im Editor?) Gab es noch mehr Meldungen / Warnungen beim Kompilieren?

Ansonsten zeig mal etwas mehr Kontext.

Gruß
 
Ohje, peinlich, peinlich ... der Fehler, der angezeigt wurde, war schon an der richtigen Stelle, aber das war wiedermal ein "pseudo" Fehler.
Der Fehler lag woanders nämlich genau eine Zeile höher ... du hast mich darauf gebracht!
Folgenden Codeausschnitt mit Fehler:

Code:
	HWND hwnd;
	if ( !( hwnd = CreateWindowEx ( NULL,
			L"MyWindowClass",
			L"MyWindow",
			WS_POPUP | WS_VISIBLE,
			0, 0, 320, 240,
			NULL, NULL,
			hInstance,
			NULL					)))

	MSG msg;
	while( TRUE )
	{
		if( PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) )
		{
		}
	}

Folgender Codeausschnitt ohne Fehler:
Code:
	HWND hwnd;
	if ( !( hwnd = CreateWindowEx ( NULL,
			L"MyWindowClass",
			L"MyWindow",
			WS_POPUP | WS_VISIBLE,
			0, 0, 320, 240,
			NULL, NULL,
			hInstance,
			NULL					)));

	MSG msg;
	while( TRUE )
	{
		if( PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) )
		{
		}
	}

Peinlich, peinlich sag ich nur ... Semikolons sind pöse ;)

Danke dir!

Liebe Grüße,
Skid.
 
Zurück