In Windows.h wird Windows.h nicht kompiliert
-
12-11-2019 - |
Frage
Ich verwende Pelles C.wenn ich diesen Code kompiliere:
#include <windows.h>
#include <stdio.h>
void main(void)
{
printf("Hello World");
}
Ich erhalte diesen Fehler:
D:\Program Files\PellesC\Include\Win\basetsd.h(53): error #2001: Syntax error: expected ';' but found 'INT64'.
D:\Program Files\PellesC\Include\Win\basetsd.h(53): warning #2099: Missing type specifier; assuming 'int'.
D:\Program Files\PellesC\Include\Win\basetsd.h(57): error #2120: Redeclaration of '__int64', previously declared at D:\Program Files\PellesC\Include\Win\basetsd.h(53); expected 'int' but found 'unsigned int'.
D:\Program Files\PellesC\Include\Win\basetsd.h(57): error #2001: Syntax error: expected ';' but found 'UINT64'.
D:\Program Files\PellesC\Include\Win\basetsd.h(57): warning #2099: Missing type specifier; assuming 'int'.
D:\Program Files\PellesC\Include\Win\winnt.h(558): fatal error #1014: #error: "No target architecture".
Vielen Dank für Ihre Hilfe.
Lösung
Um den generakodicetagcode in windows.h
verwenden zu können, müssen Sie auf:
- .
- Projekt -> Projektoptionen -> Compiler
- Check: Microsoft Extensions aktivieren
Andere Tipps
Dir fehlen einige #define
s welche anderen Compiler (z.B.Visual Studio) immer definieren.Sie liefern wesentliche Informationen über die Prozessorarchitektur, die Betriebssystemversion, die SDK-Version usw.
Es ist wahrscheinlich am besten, in der Microsoft-Dokumentation nachzuschlagen, welche Makros der Compiler definiert, und dasselbe zu tun.
Das Seite könnte ein guter Ausgangspunkt sein.
- Initialisieren Sie Ihr Programm mit
int main(void)
und nichtvoid main(void)
- Ihnen fehlt Ihre Rückgabeerklärung von
return(0);
kurz vor Ihrer letzten Klammer.Sie müssen dies einschließen, sonst erhalten Sie einen Syntaxfehler, da Ihr Programm nicht weiß, wann die Ausführung beendet werden soll.
Dann gehen Sie wie folgt vor
- Wählen Sie in Ihrer Pulldown-Menüleiste die Option aus
Project
Scrollen Sie dann nach unten und wählen Sie „Projektoptionen“. - Wähle aus
Compiler
Registerkarte und stellen Sie sicher, dass dieCalling conv:
Box hat_cdecl
ausgewählt. - Klick auf das
linker
Registerkarte und stellen Sie sicher, dass in dersubsystem
Feld, auf das der Typ eingestellt istConsole
.
Versuchen Sie es erneut und sehen Sie, was passiert!
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow