Error:#include<windows.h>, bzw. winnt.h ist kaputt gegangen!

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
Benutzeravatar
Karkan
Beiträge: 7
Registriert: 29.03.2011, 22:19
Echter Name: Jonas
Wohnort: Teningen
Kontaktdaten:

Error:#include<windows.h>, bzw. winnt.h ist kaputt gegangen!

Beitrag von Karkan »

Hallo. Das hier ist einer meiner ersten Beiträge auf diesem Forum. Demnach, weiß ich auch nicht wirklich, ob ich das hier in der richtigen Rubrik poste. :oops:

Jedenfalls, hier ist meine momentane Situation und das Problem:
Ich lerne gerade mit dem Buch: "C++ für Spieleprogrammierer" C++. Ich bin gerade bei der Windows-Programmierung und habe auch schon mein erstes Fenster erstellt.
Dazu habe ich natürlich auch windows.h eingebunden. Das hatte ich sogar schon einige Kapitel vorher gemacht, um die Funktion "Sleep()" verwenden zu können.
Ich hatte schon 2 bis 3 Wochen keine zeit mehr wirklich viel an C++ weiter zu arbeiten und hab deshalb keines meiner kleinen Projekte angerührt.
Jedenfalls habe ich vor einigen Stunden wieder das Buch aufgeschlagen und bin bei einer Aufgabenstellung gelandet. Meine Aufgabe sei es, dass alte Projekt
mit dem Windows-Fenster zu modifizieren. Bevor ich das Projekt modifiziert habe, hab ich es erst noch ein paar mal kompiliert und damit "rumexperimentiert"
(Nur mit dem erstellten Windows-Fenster, nicht mit dem Projekt).
Dann wollte ich mich ans Werk machen und die vom Buch gestellte Aufgabe schaffen. Ich habe dann 2 Zahlen bei der Generierung des Win-Fenster geändert
und das Projekt, auf ein weiteres, kompiliert.
Dabei bekam ich dann folgende Fehlermeldungen:
1>------ Erstellen gestartet: Projekt: Win32, Konfiguration: Debug Win32 ------
1> Win32-C++.cpp
1>c:\program files\microsoft sdks\windows\v7.0a\include\winnt.h(290): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'PVOID64'
1>c:\program files\microsoft sdks\windows\v7.0a\include\winnt.h(290): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winnt.h(8992): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'Buffer'
1>c:\program files\microsoft sdks\windows\v7.0a\include\winnt.h(8992): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winnt.h(8992): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
Ich habe mich gewundert, da das Projekt noch 5 Sekunden vorher problemlos kompiliert wurde. Ich änderte daraufhin wieder die Zahlen zu ihrem ursprünglichem Wert zurück.
Doch dann kamen wieder diese Error-Meldungen. Also habe ich angefangen mich mit den Errors zu beschäftigen. "winnt.h" ist eine in "Windows.h" enthaltene Datei, welche
nicht von mir verändert wurde. So viel steht schon mal fest.
Ich habe angefangen, im Internet nach Lösungen zu suchen, da ich echt keine Ahnung habe was ich mit so einem "Scherz" von Visual C++ 2010 machen soll.
Auch ältere Projekte in denen ich "windows.h" included hatte werfen die selben Meldungen aus.
Auf Google wurde ich schnell fündig! Es gibt 100te Leute mit dem selben Problem: PVOID64 (in winnt.h) ist aus heiterem Himmel kaputt gegangen.
Doch die Lösungen zu dem Problem funktionierten nicht bei mir. Unter anderem benutzen andere eine viel ältere Version von Visual Studio, welche andere Lösungen unterstützten, oder ihr Problem
trat erst mit Einbindung der DirectX SDK auf.
In einigen Lösungsvorschlägen wird man aufgefordert "winnt.h" selbst zu modifizieren. Zum Beispiel sollte man "PVOID64" löschen und in Zeile 8992 eher "POINTER_64" als "PVOID64" verwenden.
Ich habe das versucht, da es für mich und meiner Software Version am naheliegensden ist. Doch funktioniert das nicht da sowohl die Datei "WinNT.h" als auch der Ordner: "c:\program files\microsoft sdks\windows\v7.0a\include\"
schreibgeschützt ist. Ich kann also weder die vorhandene Datei ändern, noch überschreiben. Ich kann in dem Ordner nicht einmal eine Datei erstellen trotz Admin-Rechte.
Außerdem besitze ich den "Take Ownership" Win-7 hack. Doch nicht einmal dadurch wird die Datei für mich zugängig.

Ich habe jetzt schon 3 Stunden nach einer Lösung gesucht doch ich finde nichts. Seltsam ist, dass der Fehler von einer Sekunde zur anderen aufgetaucht ist. Noch Sekunden Davor hat alles funktioniert.
Ich weiß nicht wie ich diesem Problem gerecht werden kann und würde mich freuen, wenn jemand weiß, wie man es beheben kann.

Hier sind noch mal weitere Informationen:
-Ich benutze Windows 7 32-bit
-Ich benutze Visual C++ 2010 Express Edition
-"Windows.h" ist die einzige eingebundene Bibliothek und sollte unverändert sein
-Auch ältere Projekte mit "Windows.h" geben die selben Fehler aus
-Ich arbeite NICHT mit der D3D SDK
-Sekunden vorher gab es noch keine Fehler doch selbst noch dem Rückgängig-machen der Änderungen blieben die Fehler konstant
-Der "Syntaxfehler" befindet sich in der Datei "WinNt.h"
-Diese Datei wurde NICHT von mir geändert und ist Schreibgeschützt. Ich kann sie gar nicht ändern oder "reparieren"
-Die Optionen und Einstellungen von Visual C++ sollten alle auf Standard stehen. Lediglich die Verwendung von einem Unicode Standard wurde angestellt. Diese war jedoch wegen des Syntax des Beispiels im Buch notwendig und hatte sonst auch nie für Probleme gesorgt.


Okay, Hier ist noch der Codeblock in dem <Windows.h> eingebunden wird:

Code: Alles auswählen

#include<Windows.h>




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



int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst,
					LPSTR lpcmdline, int ncmdshow)

{
	WNDCLASSEX windowclass;
	HWND	   hWnd;
	MSG		   message;

	const char szClassName[15] = "Erstes Fenster";


	windowclass.cbSize = sizeof (WNDCLASSEX);

	windowclass.style = CS_HREDRAW | CS_VREDRAW;

(...)(...)



PS:
Ich bin echt verzweifelt! Ohne Unterstützung kann ich nicht weiter an C++ arbeiten, da ich sonst nicht nur im Buch, sondern auch an der Windows-Programmierung hängen bleibe :cry:
Und so lange mein Problem nicht gelöst ist wird Hier "ICH HASSE MICROSOFT STEHEN". Ich bin wirklich so Verzweifelt mit C++, dass ich nicht anders empfinden kann!
Zuletzt geändert von Karkan am 18.07.2011, 08:26, insgesamt 1-mal geändert.
Benutzeravatar
Krishty
Establishment
Beiträge: 8267
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Error:#include<windows.h>, bzw. winnt.h ist kaputt gegan

Beitrag von Krishty »

Karkan hat geschrieben:Hallo. Das hier ist einer meiner ersten Beiträge auf diesem Forum. Demnach, weiß ich auch nicht wirklich, ob ich das hier in der richtigen Rubrik poste. :oops:
In „Programmiersprachen, Quelltext & Bibliotheken“ ist es wohl besser aufgehoben :)

Poste mal bitte den Teil von Win32-C.cpp, in dem du <Windows.h> #includest (die zehn, zwanzig Zeilen davor und dahinter). Dafür kannst du die [ code=cpp ][ /code ]-Tags benutzen (ohne Leerzeichen).

Gruß, Ky
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Karkan
Beiträge: 7
Registriert: 29.03.2011, 22:19
Echter Name: Jonas
Wohnort: Teningen
Kontaktdaten:

Re: Error:#include<windows.h>, bzw. winnt.h ist kaputt gegan

Beitrag von Karkan »

Danke für die schnelle Antwort!
Also ich habe jetzt in meinem "Bericht" den Anfang des C++ Codes reinkopiert. Ohne die Kommentare um Platz zu sparen.
Aber ich bin mir nicht sicher ob das wirklich hilft. Außer den Kommentaren beginnt Win32-C++.cpp nämlich mit #include<windows.h>.
Das ist auch die einzige eingebunden Bibliothek und außerdem ist "Win32-C++.cpp" die einzige Datei die sich in der Projektmappe befindet.

Soweit ich das Problem einschätzen kann, kann es sich dabei nur um einen Software-Fehler handeln. Es gibt ja sonst keinen Grund warum
eine von Microsoft vorgegebene Datei auf einmal einen "Syntaxfehler" aufweist.

Hier sind mal die "Fehler" in in "WinNT.h":

Code: Alles auswählen

//
// Void
//

typedef void *PVOID;
typedef void * POINTER_64 PVOID64; //Hier scheint ein Syntaxfehler aufgetreten zu sein: "error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'PVOID64'"


#if (_MSC_VE(...)
(...)
Und später in WinNt.h sind weitere Fehler, die auf "PVOID64" zurück zu führen sind:

Code: Alles auswählen

//
// Define segement buffer structure for scatter/gather read/write.
//

typedef union _FILE_SEGMENT_ELEMENT {
    PVOID64 Buffer; //Hier ist Definitiv ein Fehler! PVOID64 ist nämlich nur deklariert nicht definiert worden. Sprich, PVOID64 ist wirklich wirklich "void" also "ungültig"
    ULONGLONG Alignment;
}FILE_SEGMENT_ELEMENT, *PFILE_SEGMENT_ELEMENT;

//
// The reparse GUID structur(...)
(...)
PVOID64 kommt auch nur in diesen 2 Codezeilen vor. Diese sind auch welche, die bei mir das compilen verhindern.
Ich würde gerne PVOID64 ganz aus dem Code entfernen und dafür PVOID benutzen. Das ist nämlich gefühlte 100 mal im code vorhanden
und schein auch definiert zu sein. Nur blöder weise kann ich immer noch nicht die Datei WinNT.h ändern...

~Jonas
IlikeMyLife
Establishment
Beiträge: 212
Registriert: 08.05.2011, 09:59
Benutzertext: Feel Free

Re: Error:#include<windows.h>, bzw. winnt.h ist kaputt gegan

Beitrag von IlikeMyLife »

Oh... ein leidensgenosse :-) Wunderbar, die Lösung wird mich auch BRENNEND interessieren...

Bei mir ist die Verzweiflung damals so groß gewesen, dass ich meine Entwicklungsumgebung komplett reinstalliert habe...
Bitte nicht meckern, aber wer den Fehler kennt, der weis wie groß der Frust ist...

P.S.:
Gedanklich diesen Post von mir im Jammer Thread verbinden :-(
Benutzeravatar
Schrompf
Moderator
Beiträge: 4879
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Error:#include<windows.h>, bzw. winnt.h ist kaputt gegan

Beitrag von Schrompf »

Das klingt in der Tat sehr seltsam. Die Fehlermeldung klingt, als kennt der Compiler kein "POINTER_64". Dieses Makro ist bei mir in BaseTsd.h definiert. Du kannst als Hack also mal probieren, diese Datei vor windows.h zu inkludieren. Das ist aber nur geraten, ich bin diesem Fehler noch nie vorher begegnet.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Krishty
Establishment
Beiträge: 8267
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Error:#include<windows.h>, bzw. winnt.h ist kaputt gegan

Beitrag von Krishty »

Mal Build -> Clean Solution und Build -> Rebuild Project ausprobiert, damit etwaige vorkompilierte Header neu erzeugt werden? Insbesondere würde ich von Hand die .PCH-Datei(en) irgendwo in deinem Projektverzeichnis löschen. Bei unerklärlichen Fehlern ist ein komplett-Rebuild nach Löschen alter temporärer Dateien das erste, was man machen sollte.

Daran, dass du noch das Windows SDK 7.0A nutzt (wird bei VC von Werk aus mitinstalliert) obwohl schon 7.1 raus ist, kann es jedenfalls nicht liegen. Die möglicherweise beteiligten Header sind identisch. Auch eine falsche Reihenfolge der #inlclude-Verzeichnisse ist unwahrscheinlich, da die Windows.h nur im Windows-SDK-Verzeichnis vorkommt und nicht, wie bei früheren Versionen, mit Visual C++’ Standard-#includes geliefert wird …

Geh trotzdem mal auf die Projekteigenschaften -> Configuration Properties -> Include Directories -> Edit und poste hier einen Schnappschuss davon. Das Fenster sollte so ähnlich wie das hier aussehen:
include dirs.png
Dann können wir sehen, ob mit der Reihenfolge der #include-Verzeichnisse tatsächlich was nicht stimmt. Entschuldige auch, dass ich nur die englischen Bezeichner angeben kann; ich habe hier kein deutsches VS installiert.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Karkan
Beiträge: 7
Registriert: 29.03.2011, 22:19
Echter Name: Jonas
Wohnort: Teningen
Kontaktdaten:

Re: Error:#include<windows.h>, bzw. winnt.h ist kaputt gegan

Beitrag von Karkan »

Krishty hat geschrieben:Entschuldige auch, dass ich nur die englischen Bezeichner angeben kann; ich habe hier kein deutsches VS installiert.

;) Passt schon.
Jedenfalls, hab ich jetzt mal versucht Projekt und Mappe zu "re-builden". Kommen die selben Fehlermeldungen....
Außerdem hab ich hier mal das Bild von meinen "Include-Verzeichnissen" bzw. deren Reihenfolge:
Bild

Außer dass ich keine D3D SDK installiert hab, stimmt die Reihenfolge ja mit deiner überein.
Ich frag mich echt, was zur Hölle ich falsch mache :?
Google kann mir auch ned helfen. Aber ich möchte Visual C++ nicht extra neu installieren. Das könnte womöglich nur das Problem aufschieben, und irgendwann taucht es wieder auf, und ich weiß nicht was ich machen soll.
Ich benutze schon seit über nem Jahr C++ bzw. Visual C++ 2010 und hatte bis jetzt nie Probleme die weder ich, noch Google lösen konnten.
Naja, bleibt nur zu hoffen, dass ich das mit dem Fehler irgendwann wieder hin bekomm. Und das nicht ich selbst irgend einen peinlichen Fehler gemacht habe und deshalb eure Zeit verschwende...
Aber, Danke für die Hilfe!

~Jonas
Benutzeravatar
Schrompf
Moderator
Beiträge: 4879
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Error:#include<windows.h>, bzw. winnt.h ist kaputt gegan

Beitrag von Schrompf »

Krishty hat geschrieben:Insbesondere würde ich von Hand die .PCH-Datei(en) irgendwo in deinem Projektverzeichnis löschen. Bei unerklärlichen Fehlern ist ein komplett-Rebuild nach Löschen alter temporärer Dateien das erste, was man machen sollte.
nur um den wichtigen Teil nochmal zu zitieren. Folgende Dateien kannst Du immer löschen und solltest das auch tun, wenn Du unerklärlichen Compilerproblemen gegenüberstehst:

*.obj (nur die von eigenen Projekten)
*.idb (nur die von eigenen Projekten)
*.pdb (nur die von eigenen Projekten)
*.ilk
*.ipch
*.lib (nur die von eigenen Projekten)
*.tlog
*.lastbuildstate
und den ganzen Manifest-Kram.

Ausprobieren!
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
BeRsErKeR
Establishment
Beiträge: 689
Registriert: 27.04.2002, 22:01

Re: Error:#include<windows.h>, bzw. winnt.h ist kaputt gegan

Beitrag von BeRsErKeR »

Karkan hat geschrieben:

Code: Alles auswählen

typedef union _FILE_SEGMENT_ELEMENT {
    PVOID64 Buffer; //Hier ist Definitiv ein Fehler! PVOID64 ist nämlich nur deklariert nicht definiert worden. Sprich, PVOID64 ist wirklich wirklich "void" also "ungültig"
    ULONGLONG Alignment;
}FILE_SEGMENT_ELEMENT, *PFILE_SEGMENT_ELEMENT;
Typen müssen nicht definiert und deklariert werden. Nach einem

Code: Alles auswählen

typedef void* PVOID;
ist PVOID als Typ verfügbar.

Karkan hat geschrieben:PVOID64 kommt auch nur in diesen 2 Codezeilen vor. Diese sind auch welche, die bei mir das compilen verhindern.
Ich würde gerne PVOID64 ganz aus dem Code entfernen und dafür PVOID benutzen. Das ist nämlich gefühlte 100 mal im code vorhanden
und schein auch definiert zu sein. Nur blöder weise kann ich immer noch nicht die Datei WinNT.h ändern...
Es ist egal ob du PVOID64 nutzt oder nicht. Wenn da eine fehlerhafte Definition in irgendeinem Header, den du einbindest, drin steht, haut die dir der Compiler um die Ohren. In der Winnt.h sollte man auf keinen Fall was ändern. In der Regel ist der enthaltene Code korrekt und bugfrei. Ausnahmen gibt es natürlich immer, aber dann sollte man eher nach einem Bugfix suchen anstatt da irgendwelche Sachen zu entfernen. Denn spätere Projekte benötigen eventuell genau diese Teile oder andere Teile der WINAPI benötigen sie.

Mir ist so ein Fehler auch nicht bekannt, allerdings kommt es oft zu Problemen, wenn man die windows.h zum falschen Zeitpunkt inkludiert bzw. Header wie winnt.h separat einbezieht.
Zuletzt geändert von BeRsErKeR am 18.07.2011, 20:38, insgesamt 1-mal geändert.
Ohne Input kein Output.
Benutzeravatar
Krishty
Establishment
Beiträge: 8267
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Error:#include<windows.h>, bzw. winnt.h ist kaputt gegan

Beitrag von Krishty »

Dass PVOID undefiniert ist, ist nur ein Symptom – der Compiler erkennt __ptr64 in dessen Definition nicht als Schlüsselwort, wie er es sollte. Der Rest sind Folgefehler, die daraus resultieren.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Eisflamme
Establishment
Beiträge: 412
Registriert: 26.05.2002, 17:42
Wohnort: Köln

Re: Error:#include<windows.h>, bzw. winnt.h ist kaputt gegan

Beitrag von Eisflamme »

Vll. ist beim Installieren auch irgendwas nicht kopiert worden, weil <random>, oder beim Runterladen der Installationsdatei für MSVC ist was schief gelaufen (Hashsum überprüfen?). Installier die IDE doch notfalls einfach nochmal mit neu heruntergeladenen Dateien neu.
Benutzeravatar
Karkan
Beiträge: 7
Registriert: 29.03.2011, 22:19
Echter Name: Jonas
Wohnort: Teningen
Kontaktdaten:

Re: Error:#include<windows.h>, bzw. winnt.h ist kaputt gegan

Beitrag von Karkan »

Eisflamme hat geschrieben:Vll. ist beim Installieren auch irgendwas nicht kopiert worden, weil <random>, oder beim Runterladen der Installationsdatei für MSVC ist was schief gelaufen (Hashsum überprüfen?). Installier die IDE doch notfalls einfach nochmal mit neu heruntergeladenen Dateien neu.

Naja, ich glaub nicht dass irgendwas bei der Installation kaputt gegangen ist oder so. Vor ein paar Tagen hat ja noch alles funktioniert.
Aber da "PVOID64" in einer anderen include-ten datei definiert sein muss, kann es ja sein, dass diese Datei fehlt.
Vllt. ist eine andere wichtige Datei, also nicht winnt.h, kaputt gegangen und winnt.h wird nun als Fehlerquelle erkannt.

Aber egal! Mir reichts jetzt mit dem Fehler. Heut oder Morgen mach in ne Neuinstallation!

~Jonas
Benutzeravatar
Krishty
Establishment
Beiträge: 8267
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Error:#include<windows.h>, bzw. winnt.h ist kaputt gegan

Beitrag von Krishty »

Tu das. Ich habe auch mal tagelang einen Absturz im Programm gesucht, der dann dadurch zustandekam, dass von einem Tag auf den anderen die Projektdatei ungültig wurde (wenn deine anderen Projekte nicht ebenfalls Probleme mit <Windows.h> hätten, wäre das auch mein nächster Vorschlag gewesen) … manchmal soll es einfach nicht sein.

Lad dir dann auch direkt das SP1 herunter, das enthält diverse Verbesserungen in Stabilität, Leistung und aktualisierte Bibliotheken.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Karkan
Beiträge: 7
Registriert: 29.03.2011, 22:19
Echter Name: Jonas
Wohnort: Teningen
Kontaktdaten:

Re: Error:#include<windows.h>, bzw. winnt.h ist kaputt gegan

Beitrag von Karkan »

Also die Neuinstallation hat sowas von gar nix gebracht. Ich fands eigentlich schon nett, das Microsoft diese Funktion integriert hat, aber das hat dann au nix gebracht.
Der Fehler ist echt schlimm :-l
Naja, ich lad grad das Service Pack 1 runter.
Ich hoffe mal das hilft T_T - Aber eigentlich sollte das schon helfen, da ja die Standardbibliotheken aktualisiert werden.
Ich meld mich einfach wieder wenn's geklappt hat. Danke noch mal für eure Hilfe bei dem Problem ;-D

~Jonas


Edit:
Trotz Update auf SP1 klappts immer noch ned!
Und schaut euch mal das an:
1>------ Erstellen gestartet: Projekt: Schach, Konfiguration: Debug Win32 ------
1> Main.cpp
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(243): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'Internal'
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(243): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(243): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(244): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'InternalHigh'
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(244): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(244): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(247): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'Offset'
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(247): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(247): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(248): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'OffsetHigh'
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(248): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(248): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(250): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'Pointer'
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(250): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(250): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(253): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'hEvent'
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(253): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(253): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(257): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'lpCompletionKey'
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(257): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(257): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(259): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'Internal'
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(259): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(259): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(260): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'dwNumberOfBytesTransferred'
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(260): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(260): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(264): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'nLength'
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(264): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(264): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(265): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'lpSecurityDescriptor'
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(265): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(265): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(266): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'bInheritHandle'
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(266): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(266): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(270): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'hProcess'
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(270): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(270): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(271): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'hThread'
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(271): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(271): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(272): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'dwProcessId'
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(272): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(272): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(273): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'dwThreadId'
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(273): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(273): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(284): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'dwLowDateTime'
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(284): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(284): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(285): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'dwHighDateTime'
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(285): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(285): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(295): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'wYear'
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(295): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(295): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(296): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'wMonth'
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(296): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(296): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(297): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'wDayOfWeek'
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(297): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(297): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(298): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'wDay'
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(298): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(298): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(299): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'wHour'
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(299): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(299): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(300): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'wMinute'
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(300): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(300): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(301): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'wSecond'
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(301): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(301): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(302): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'wMilliseconds'
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(302): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(302): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(306): error C2065: 'WINAPI': nichtdeklarierter Bezeichner
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(306): error C2065: 'PTHREAD_START_ROUTINE': nichtdeklarierter Bezeichner
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(306): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\program files\microsoft sdks\windows\v7.0a\include\winbase.h(306): fatal error C1903: Weiterverarbeitung nach vorherigem Fehler nicht möglich; Kompilierung wird abgebrochen.
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
Das passiert, wenn ich WinBase.h include. Diese Fehler alle Fehler lassen sich bestimmt auf die selbe Datei zurück führen, denn die Fehlerausgabe ist quasi identisch zu der von "PVOID64".
Aber was ist denn da kaputt gegangen, wenn selbst ne Neuinstallation und ein Service Pack nix bringen? :cry:
IlikeMyLife
Establishment
Beiträge: 212
Registriert: 08.05.2011, 09:59
Benutzertext: Feel Free

Re: Error:#include<windows.h>, bzw. winnt.h ist kaputt gegan

Beitrag von IlikeMyLife »

hört sich hart an, allerdings bei deinem stand hast du ja glaube noch recht wenig quelltext. von daher würde ich das komplette programm vom rechner schmeißen cc-cleaner drüber rennen lassen, anschließend neu installieren und danach nen testversuch starten...

ich suche im netz synchron neben der diskussion hier auch noch nach fällen, die dieses beschreiben... nicht aus zu denken, was passiert, wenn man mehrere tausend zeilen quelltext gecodet hat und dieses problem tritt auf...
Benutzeravatar
Krishty
Establishment
Beiträge: 8267
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Error:#include<windows.h>, bzw. winnt.h ist kaputt gegan

Beitrag von Krishty »

… und wieder erkennt er ein Schlüsselwort nicht. Zweierlei Dinge:

1.) Mit SP1 sollte das Windows-SDK 7.1 installiert sein. Er sollte winbase.h also nicht in c:\program files\microsoft sdks\windows\v7.0a\include suchen sondern in c:\program files\microsoft sdks\windows\v7.1\include. Das dürfte für die Fehler keinen Unterschied machen weil die Versionen identisch sind; es zeigt aber, dass da irgendwas nicht richtig funktioniert.

2) Ich habe ganz am Anfang mit dem Gedanken gespielt, dass du Spracherweiterungen deaktiviert haben könntest (Projekteinstellungen -> C/C++ -> Sprache) und er deshalb solche MS-spezifischen Sachen nicht erkennt. Dann würde er aber noch viel mehr Fehler ausspucken und du hättest das Problem nur in einem Projekt, nicht in allen.

Ehrlich gesagt klingt mir das fast danach, als würdest du den falschen Compiler benutzen; den 2005er-Compiler von irgendeinem alten SDK, was noch auf der Festplatte rumliegt (die kommen ja je mit eigenem Compiler) oder so. Ich habe aber absolut keinen Plan, wie sowas passieren oder wie man es prüfen könnte.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: Error:#include<windows.h>, bzw. winnt.h ist kaputt gegan

Beitrag von kimmi »

Welches Subsystem benutzt du? ( schau mal in den Projekteinstellungen -> Linker -> System -> ganz oben Eintrag namens Subsystem ). Steht da Windows?

Und wenn du ein ganz simples main wie zum Beispiel :

Code: Alles auswählen

#include <windows.h>

int main( int argc, char *argv[])
{
  return 0;
}
in einem frischen Projekt erstellst: tritt der Fehler da auch auf?

Gruß Kimmi
IlikeMyLife
Establishment
Beiträge: 212
Registriert: 08.05.2011, 09:59
Benutzertext: Feel Free

Re: Error:#include<windows.h>, bzw. winnt.h ist kaputt gegan

Beitrag von IlikeMyLife »

Krishty hat geschrieben:Ehrlich gesagt klingt mir das fast danach, als würdest du den falschen Compiler benutzen; den 2005er-Compiler von irgendeinem alten SDK, was noch auf der Festplatte rumliegt (die kommen ja je mit eigenem Compiler) oder so. Ich habe aber absolut keinen Plan, wie sowas passieren oder wie man es prüfen könnte.
Meine Vermutung, einen Registry-Cleaner mal drüber laufen zu lassen. Kann auch sein, dass ein ehemaliger Compiler einen Eintrag in die Registry rein gehauen hat, den der aktuelle nicht mag und dadurch der Fehler. Wenn selbst nach einem ReInstall der Fehler auftritt könnte es gar nicht so abwegig sein...
Benutzeravatar
Karkan
Beiträge: 7
Registriert: 29.03.2011, 22:19
Echter Name: Jonas
Wohnort: Teningen
Kontaktdaten:

Re: Error:#include<windows.h>, bzw. winnt.h ist kaputt gegan

Beitrag von Karkan »

IlikeMyLife hat geschrieben: ich suche im netz synchron neben der diskussion hier auch noch nach fällen, die dieses beschreiben... nicht aus zu denken, was passiert, wenn man mehrere tausend zeilen quelltext gecodet hat und dieses problem tritt auf...

http://www.unoriginal.co.uk/destroy-your-computer.html Das passiert dann! :evil:
Naja war ein Scherz^^

Aber okay. Ich hab das Programm zwar schon mal neuinstalliert, aber einmal mehr kann ja nich schaden ;)
Antworten