time.h errors?
-
salut,
ich habe ein einfaches kleines programm geschrieben und versuche
#include <windows.h> #include <winsock2.h>einzufügen. ich bekomme aber beim kompilieren einen fehler, undzwar von der time.h die irgendwie mitverlinkt wird.
hier mal die errors:
..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\time.h|142|error C2144: syntax error : 'int' should be preceded by ';'| ..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\time.h|142|error C2501: '_Check_return_' : missing storage-class or type specifiers| ..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\time.h|146|error C2144: syntax error : 'long' should be preceded by ';'| ..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\time.h|146|error C2501: '_Check_return_' : missing storage-class or type specifiers| ..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\time.h|146|error C2086: 'int _Check_return_' : redefinition| ..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\time.h|150|error C2144: syntax error : 'long' should be preceded by ';'| ..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\time.h|150|error C2501: '_Check_return_' : missing storage-class or type specifiers| ..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\time.h|150|error C2086: 'int _Check_return_' : redefinition| ..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\time.h|154|error C2146: syntax error : missing ';' before identifier '_Deref_ret_z_'| ..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\time.h|154|error C2501: '_Check_return_' : missing storage-class or type specifiers| ..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\time.h|154|error C2086: 'int _Check_return_' : redefinition| ..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\time.h|154|error C2144: syntax error : 'char' should be preceded by ';'| ..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\time.h|154|error C2501: '_Deref_ret_z_' : missing storage-class or type specifiers| ..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\time.h|157|error C2065: '_Out_' : undeclared identifier| ..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\time.h|157|error C2144: syntax error : 'int' should be preceded by ')'| ..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\time.h|157|error C2448: '_get_daylight' : function-style initializer appears to be a function definition| ..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\time.h|157|error C2059: syntax error : ')'| ..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\time.h|158|error C3861: '_Out_': identifier not found, even with argument-dependent lookup| ..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\time.h|158|error C2144: syntax error : 'long' should be preceded by ')'| ..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\time.h|158|error C2448: '_get_dstbias' : function-style initializer appears to be a function definition| ..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\time.h|158|error C2059: syntax error : ')'| ..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\time.h|159|error C3861: '_Out_': identifier not found, even with argument-dependent lookup| ..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\time.h|159|error C2144: syntax error : 'long' should be preceded by ')'| ..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\time.h|159|error C2448: '_get_timezone' : function-style initializer appears to be a function definition| ..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\time.h|159|error C2059: syntax error : ')'| ..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\time.h|160|error C3861: '_Out_': identifier not found, even with argument-dependent lookup| ..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\time.h|160|error C2146: syntax error : missing ')' before identifier 'size_t'| ..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\time.h|160|warning C4229: anachronism used : modifiers on data are ignored| ..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\time.h|160|error C2059: syntax error : ')'| ..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\time.h|164|error C2144: syntax error : 'char' should be preceded by ';'| ..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\time.h|164|error C2065: '_In_' : undeclared identifier| ..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\time.h|164|error C2143: syntax error : missing ')' before 'const'| ..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\time.h|164|warning C4229: anachronism used : modifiers on data are ignored| ..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\time.h|164|error C2059: syntax error : ')'| ..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\time.h|166|error C2065: '_SizeInBytes' : undeclared identifier| ..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\time.h|166|error C3861: '_Out_cap_': identifier not found, even with argument-dependent lookup| . . . usw. ||More errors follow but not being shown.| ||Edit the max errors limit in compiler options...| ||=== Build finished: 50 errors, 6 warnings ===|p.s.: die time.h is von visual c++
-
ok, bin wirklich ein bisschen zu blöd^^ fehler behoben, anderer fehler bekommen. jetzt bekomme ich bei yvals.h fehler:
..\..\..\..\..\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\yvals.h|595|error C4234: nonstandard extension used : '__thiscall' keyword reserved for future use| . . . usw. ||More errors follow but not being shown.| ||Edit the max errors limit in compiler options...| ||=== Build finished: 50 errors, 9 warnings ===|
-
Scheint mir eher ein Kompiler/IDE-Problem zu sein, das wäre ein paar Stockwerke tiefer.
Aber schau doch mal die folgende Sache nach:
Project Properties -> C/C++ -> Language -> Disable Language ExtensionsKönnte mir vorstellen, dass dort ein "yes" steht. Setze dieses mal auf "no", mal schauen was passiert

Grüssli
-
ok danke, das problem ist nur dass ich visual c++ (diese 30 tage demo ist auch schon abgelaufen) installiert hab aber ich eig code::blocks (mit den vc++ compiler) benutze und bei code::blocks find ich das leider nicht
-
krusty123 schrieb:
ok danke, das problem ist nur dass ich visual c++ (diese 30 tage demo ist auch schon abgelaufen) installiert hab aber ich eig code::blocks (mit den vc++ compiler) benutze und bei code::blocks find ich das leider nicht
1. Visual Studio 30 Tage Demo? Visul Studio 2008 Express Edition ist gratis! Was für eine Version hast du dir denn geholt?
2. Probierst du gerade die Header und Bibliotheken von Visual Studio mit Code::Blocks, bzw. dem GCC, zu nutzen? Das geht nicht.Grüssli
-
Dravere schrieb:
1. Visual Studio 30 Tage Demo? Visul Studio 2008 Express Edition ist gratis! Was für eine Version hast du dir denn geholt?
Man hat 30 Tage Zeit, bevor man sich auch mit der Express Version registrieren muss. Anschliessend ist die Benutzung aber kostenlos.
-
ok danke, benutze jetzt vc++ express

problem bleibt aber... hier nochmal der fehlercode von vc++:
1>c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(91) : warning C4005: 'AF_IPX': Makro-Neudefinition 1> c:\program files\microsoft sdks\windows\v6.0a\include\winsock.h(460): Siehe vorherige Definition von 'AF_IPX' 1>c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(127) : warning C4005: 'AF_MAX': Makro-Neudefinition 1> c:\program files\microsoft sdks\windows\v6.0a\include\winsock.h(479): Siehe vorherige Definition von 'AF_MAX' 1>c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(163) : warning C4005: 'SO_DONTLINGER': Makro-Neudefinition 1> c:\program files\microsoft sdks\windows\v6.0a\include\winsock.h(402): Siehe vorherige Definition von 'SO_DONTLINGER' 1>c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(206) : error C2011: 'sockaddr': 'struct' Typneudefinition 1> c:\program files\microsoft sdks\windows\v6.0a\include\winsock.h(485): Siehe Deklaration von 'sockaddr' 1>c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(384) : error C2143: Syntaxfehler: Es fehlt '}' vor 'Konstante' 1>c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(384) : error C2143: Syntaxfehler: Es fehlt ';' vor 'Konstante' . . . usw. 1>Chat - 67 Fehler, 16 Warnung(en) ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
-
Hast du einen Header mehrfach eingebunden, der nicht über Include Guards gesichert ist?
-
das sind meine includes:
#include <iostream> #include <fstream> #include <windows.h> #include <winsock2.h>
-
krusty123 schrieb:
problem bleibt aber... hier nochmal der fehlercode von vc++:
Das sind aber nun andere Fehler. Diese Fehler kommen davon, dass
<windows.h> <winsock.h>inkludiert, was nicht kompatibel mit<winsock2.h>ist. DefiniereWIN32_LEAN_AND_MEANbevor due<windows.h>inkludierst, also:#define WIN32_LEAN_AND_MEAN #include <windows.h> #include <winsock2.h>Oder inkludiere
<winsock2.h>bevor du<windows.h>inkludierst, also:#include <winsock2.h> #include <windows.h>Grüssli
-
hat leider nix gebracht... hier mal mein code:
#define WIN32_LEAN_AND_MEAN #include <windows.h> #include <winsock2.h> #include <fstream> #include <sys/types.h> #include <netinet/in.h> #include "stdafx.h" using namespace std; int main(int argc, char *argv[]) { struct sockaddr_in r; struct hostent *http; char buff[1024]; char tempo[1024]; int port = 80; int s; if((http=gethostbyname(argv[1])) == NULL) { printf(" %s : hostname doesn't exist\n",argv[1]); exit(1); } r.sin_family = AF_INET; r.sin_port = htons(80); r.sin_addr=*(struct in_addr *)http->h_addr; strcpy(tempo, "GET / HTTP/1.1\r\nHost: http://c-plusplus.net" target="_blank" style="text-decoration:underline">www.c-plusplus.net\r\n\r\n"); s=socket(AF_INET, SOCK_STREAM, 0); if((connect(s, (struct sockaddr *)&r, sizeof(r))) == -1) { perror("connect"); exit(1); } else { send(s, tempo , sizeof(tempo) , 0); recv(s, buff, sizeof(buff), 0); } close(s); printf("%s", buff); }
-
Falls du vorkompilierte Header einsetzt, muss
"StdAfx.h"vor allen anderen Headern eingebunden werden; Code, der vor diesem#includesteht, wird ignoriert.
-
ok vielen dank, nun kompiliert er zuende, aber danach stürzt er sofort ab^^... code ist der selbe nur mit
#include "stdafx.h"am anfang... ich hasse vc++ jetzt schon^^ naja hier der bericht mit dem absturz:
Der Thread 'Win32 Thread' (0xfa0) hat mit Code 0 (0x0) geendet. Der Thread 'Win32 Thread' (0xff0) hat mit Code 0 (0x0) geendet. Das Programm "[3820] main.exe: Verwaltet" wurde mit Code 0 (0x0) beendet. Das Programm "[3820] main.exe: Systemeigen" wurde mit Code 0 (0x0) beendet.vor den 4 zeilen steht nur, welche dll dateien erfolgreich geladen wurden
-
Sieht mir aber nicht gerade nach Absturz aus (steht nichts von Exception oder Laufzeitfehler, zudem Returncode 0). Vergewissere dich, dass das Ende von
main()nicht zu früh erreicht wird und du keinereturn-Statements inmain()hast. Ich hoffe, du hast nicht sogar noch Schlimmeres wieexit().Dabei kann dir der Debugger wunderbar helfen.
-
irgendwie gibt mir vc++ immer "hallo welt" aus (wie ich code::blocks vermisse^^)
-
krusty123 schrieb:
ich hasse vc++ jetzt schon^^
Wieso? Bisher waren es alles deine Fehler! Jeder andere Kompiler hätte dir auch Fehler an den Kopf geworfen, nur womöglich noch schlechter dokumentiert.
krusty123 schrieb:
Der Thread 'Win32 Thread' (0xfa0) hat mit Code 0 (0x0) geendet. Der Thread 'Win32 Thread' (0xff0) hat mit Code 0 (0x0) geendet. Das Programm "[3820] main.exe: Verwaltet" wurde mit Code 0 (0x0) beendet. Das Programm "[3820] main.exe: Systemeigen" wurde mit Code 0 (0x0) beendet.Hmmm, ich glaube, da verweise ich lieber auf diesen Link:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-111042.htmlAlso ich glaube, dass hier kein Absturz stattfand, sondern das Programm einfach beendet wurde und du nichts gesehen hast, weil die Konsole nur kurz aufgetaucht und dann wieder verschwunden ist.
Grüssli
-
krusty123 schrieb:
irgendwie gibt mir vc++ immer "hallo welt" aus (wie ich code::blocks vermisse^^)
Eine Information, wie sie im Bezug auf dein Problem nicht nützlicher sein könnte.
-
ich weiß echt nicht was ich falsch mache... ich kompiliere -> kein fehler -> fenster öffnet sich -> es steht kurz "Hallo Welt" dran -> fenster schließt sich wieder, das wars
hier der code den ich benutze:
#include "stdafx.h" #define WIN32_LEAN_AND_MEAN #include <windows.h> #include <winsock2.h> #include <iostream> #include <fstream> #include <sys/types.h> #include <netinet/in.h> using namespace std; int main() { struct sockaddr_in r; struct hostent *http; char buff[1024]; char tempo[1024]; int port = 80; int s; if((http=gethostbyname(argv[1])) == NULL) { printf(" %s : hostname doesn't exist\n",argv[1]); } r.sin_family = AF_INET; r.sin_port = htons(80); r.sin_addr=*(struct in_addr *)http->h_addr; strcpy(tempo, "GET / HTTP/1.1\r\nHost: http://www.c-plusplus.net" target="_blank" style="text-decoration:underline">www.c-plusplus.net\r\n\r\n"); s=socket(AF_INET, SOCK_STREAM, 0); if((connect(s, (struct sockaddr *)&r, sizeof(r))) == -1) { perror("connect"); } else { send(s, tempo , sizeof(tempo) , 0); recv(s, buff, sizeof(buff), 0); } printf("%s", buff); system("pause"); return 0; }das ist der ganze code den ich verwende!