time.h errors?



  • 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>
    

  • Administrator

    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. Definiere WIN32_LEAN_AND_MEAN bevor 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 #include steht, 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 keine return -Statements in main() hast. Ich hoffe, du hast nicht sogar noch Schlimmeres wie exit() .

    Dabei kann dir der Debugger wunderbar helfen.



  • irgendwie gibt mir vc++ immer "hallo welt" aus (wie ich code::blocks vermisse^^)


  • Administrator

    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.html

    Also 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!


Anmelden zum Antworten