IP Adresse mit C++ einlesen



  • Du hast wohl vergessen Ws2_32.lib mitzulinken 😉



  • so habs mal gemacht, und ist auch schon weniger geworden:

    $ g++ CGetIP.cpp ws2_32.Lib
    C:/DOKUME~1/MATTHI~1/LOKALE~1/Temp/ccwhaaaa.o(.text+0x2a9):CGetIP.cpp: unde   reference to `InternetOpenA@20'
    C:/DOKUME~1/MATTHI~1/LOKALE~1/Temp/ccwhaaaa.o(.text+0x2e3):CGetIP.cpp: unde   reference to `InternetConnectA@32'
    C:/DOKUME~1/MATTHI~1/LOKALE~1/Temp/ccwhaaaa.o(.text+0x328):CGetIP.cpp: unde   reference to `HttpOpenRequestA@32'
    C:/DOKUME~1/MATTHI~1/LOKALE~1/Temp/ccwhaaaa.o(.text+0x361):CGetIP.cpp: unde   reference to `HttpSendRequestA@20'
    C:/DOKUME~1/MATTHI~1/LOKALE~1/Temp/ccwhaaaa.o(.text+0x399):CGetIP.cpp: unde   reference to `InternetReadFile@16'
    C:/DOKUME~1/MATTHI~1/LOKALE~1/Temp/ccwhaaaa.o(.text+0x46f):CGetIP.cpp: unde   reference to `InternetCloseHandle@4'
    C:/DOKUME~1/MATTHI~1/LOKALE~1/Temp/ccwhaaaa.o(.text+0x489):CGetIP.cpp: unde   reference to `InternetCloseHandle@4'
    C:/DOKUME~1/MATTHI~1/LOKALE~1/Temp/ccwhaaaa.o(.text+0x4a3):CGetIP.cpp: unde   reference to `InternetCloseHandle@4'
    c:/Programme/MinGW/bin/../lib/gcc-lib/mingw32/3.2.3/../../../libmingw32.a(m  )(.text+0x97):main.c: undefined reference to `WinMain@16'
    

    Was fehlt denn jetzt noch? Wie kommt man den überhaupt daruaf das z.B. genau die Datei Ws2_32.lib gefehlt hat. Ich hätte das jetzt nie so gesehenn.

    Matthias



  • Matthias147 schrieb:

    Was fehlt denn jetzt noch?

    die Library Wininet.lib...

    Matthias147 schrieb:

    Wie kommt man den überhaupt daruaf das z.B. genau die Datei Ws2_32.lib gefehlt hat. Ich hätte das jetzt nie so gesehenn.

    in dem man genau die Doku liest, in diesem Falle (Wininet.Lib) steht dort in der MSDN zur Funktion InternetOpen:

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wininet/wininet/internetopen.asp

    der entscheidende Hinweis ganz unten unter "Requirements".

    MfG



  • Ich verstehe es nicht, aber es geht immer noch nicht:

    $ g++ CGetIP.cpp WS2_32.Lib WinInet.Lib
    C:/DOKUME~1/MATTHI~1/LOKALE~1/Temp/ccG2baaa.o(.text+0x477):CGetIP.cpp: undefined                          reference to `InternetOpenA@20'
    C:/DOKUME~1/MATTHI~1/LOKALE~1/Temp/ccG2baaa.o(.text+0x4b1):CGetIP.cpp: undefined                          reference to `InternetConnectA@32'
    C:/DOKUME~1/MATTHI~1/LOKALE~1/Temp/ccG2baaa.o(.text+0x4f6):CGetIP.cpp: undefined                          reference to `HttpOpenRequestA@32'
    C:/DOKUME~1/MATTHI~1/LOKALE~1/Temp/ccG2baaa.o(.text+0x52f):CGetIP.cpp: undefined                          reference to `HttpSendRequestA@20'
    C:/DOKUME~1/MATTHI~1/LOKALE~1/Temp/ccG2baaa.o(.text+0x567):CGetIP.cpp: undefined                          reference to `InternetReadFile@16'
    C:/DOKUME~1/MATTHI~1/LOKALE~1/Temp/ccG2baaa.o(.text+0x63d):CGetIP.cpp: undefined                          reference to `InternetCloseHandle@4'
    C:/DOKUME~1/MATTHI~1/LOKALE~1/Temp/ccG2baaa.o(.text+0x657):CGetIP.cpp: undefined                          reference to `InternetCloseHandle@4'
    C:/DOKUME~1/MATTHI~1/LOKALE~1/Temp/ccG2baaa.o(.text+0x671):CGetIP.cpp: undefined                          reference to `InternetCloseHandle@4'
    

    aber warum??? 😞

    wenn ich übrigens einen banalen Fehler einbaue wie Semikolon vergessen, bemängelt der nur diesen Fehler und sonst nichts, wenn aber ansonsten alles Korrekt ist, kommt die Meldung s.o.

    Matthias



  • Ich kenne deinen Compiler bzw. deinen Linker nicht, aber bist du sicher, dass die Syntax für das Linken mehrerer Files so ist?!

    Matthias147 schrieb:

    wenn ich übrigens einen banalen Fehler einbaue wie Semikolon vergessen, bemängelt der nur diesen Fehler und sonst nichts, wenn aber ansonsten alles Korrekt ist, kommt die Meldung s.o.

    Die Fehlermeldungen kommen vom Linken - gibt es beim Kompilieren schon Fehler macht er erst gar nicht soweit 😉



  • Naja, sicher bin ich mir nicht, zumindest gehts so mit mehreren cpp files und bei der WS2_32.Lib hats die Meldungen auch schon mal reduziert.

    Ich benutze den MinGW 3.

    Wie sieht die Syntax den normalerweise aus? ich kanns ja mal probieren.

    Matthias



  • Normalerweise ist gut 😃
    Ich hab z.B. Visual C++ - da übernimmt sowas die IDE für einen (also man muss nur die ganzen lib-Files hintereinanderhängen)

    Du kannst ja mal probieren, was passiert, wenn du die beiden lib-Files vertauscht. Wenn dann wieder die anderen Fehler kommen weißt du, dass die Syntax nicht stimmt in der du die File angibst. Kannst du die Anwendung nicht mit -? o.ä. aufrufen, damit die Parameter ausgegeben werden?



  • so, hab mal Versucht, die beiden Lib files zu vertauschen. Dann kommen immenoch dieselben Fehlermeldungen. Wenn ich aber die cpp Datei auch noch mit vertausche, kommen die alten Fehlermeldungen auch wieder dazu.

    -? klappt irgendwie nicht.

    😕



  • evtl. auch /? o.ä. - gibt es denn keine Doku zu dem Compiler 😕



  • der befehl für die kurzhilfe ist

    g++ --help
    

    bei mir macht er alles 😃

    g++.exe -c getip.cpp -o getip.o
    g++.exe -c main.cpp -o main.o
    g++.exe main.o getip.o  -o "getip.exe" -lWs2_32 -lWininet 
    Ausführung beendet
    Kompilierung erfolgreich
    

    @matthias
    ich rate dir zu dev-cpp, somit hast du ne ide und den mingw als compiler

    [edit]
    alles wieder geändert 😃



  • yeah, so klappt es.

    dev c++, werde ich mir doch wirklich wohl mal angucken müssen.

    Vielen Dank

    Matthias


Anmelden zum Antworten