IP Adresse mit C++ einlesen
-
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++ --helpbei 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