C++ - Portscanner

paul10

Mitglied
Hallo,

ich hab im Internet diesen Source gefunden für einen Portscanner und ein bisschen verändert, da ich mich gerade mit diesem Thema beschäftige.

Hier genau zu meinenm Problem:

Wenn ich den Source in der IDE Visual C++ 2008 Express Edition kopeliere, dann bekomm ich diesen Fehler :

Code:
1>------ Erstellen gestartet: Projekt: Protscanner, Konfiguration: Debug Win32 ------
1>Kompilieren...
1>main.cpp
1>c:\dokumente und einstellungen\*zensiert*\eigene dateien\visual studio 2008\projects\protscanner\protscanner\main.cpp(47) : warning C4700: Die nicht initialisierte lokale Variable "s" wurde verwendet.
1>Verknüpfen...
1>main.obj : error LNK2028: Nicht aufgelöstes Token (0A000285) ""extern "C" int __stdcall connect(unsigned int,struct sockaddr const *,int)" (?connect@@$$J212YGHIPBUsockaddr@@H@Z)", auf das in Funktion ""int __cdecl main(int,char * * const)" (?main@@$$HYAHHQAPAD@Z)" verwiesen wird.
1>main.obj : error LNK2028: Nicht aufgelöstes Token (0A00028F) ""extern "C" int __stdcall WSAStartup(unsigned short,struct WSAData *)" (?WSAStartup@@$$J18YGHGPAUWSAData@@@Z)", auf das in Funktion ""int __cdecl main(int,char * * const)" (?main@@$$HYAHHQAPAD@Z)" verwiesen wird.
1>main.obj : error LNK2028: Nicht aufgelöstes Token (0A00029F) ""extern "C" unsigned short __stdcall htons(unsigned short)" (?htons@@$$J14YGGG@Z)", auf das in Funktion ""int __cdecl main(int,char * * const)" (?main@@$$HYAHHQAPAD@Z)" verwiesen wird.
1>main.obj : error LNK2028: Nicht aufgelöstes Token (0A0002BD) ""extern "C" int __stdcall WSACleanup(void)" (?WSACleanup@@$$J10YGHXZ)", auf das in Funktion ""int __cdecl main(int,char * * const)" (?main@@$$HYAHHQAPAD@Z)" verwiesen wird.
1>main.obj : error LNK2028: Nicht aufgelöstes Token (0A0002C2) ""extern "C" unsigned int __stdcall socket(int,int,int)" (?socket@@$$J212YGIHHH@Z)", auf das in Funktion ""int __cdecl main(int,char * * const)" (?main@@$$HYAHHQAPAD@Z)" verwiesen wird.
1>main.obj : error LNK2028: Nicht aufgelöstes Token (0A0002D4) ""extern "C" int __stdcall closesocket(unsigned int)" (?closesocket@@$$J14YGHI@Z)", auf das in Funktion ""int __cdecl main(int,char * * const)" (?main@@$$HYAHHQAPAD@Z)" verwiesen wird.
1>main.obj : error LNK2028: Nicht aufgelöstes Token (0A0002E5) ""extern "C" struct hostent * __stdcall gethostbyname(char const *)" (?gethostbyname@@$$J14YGPAUhostent@@PBD@Z)", auf das in Funktion ""int __cdecl main(int,char * * const)" (?main@@$$HYAHHQAPAD@Z)" verwiesen wird.
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" int __stdcall WSACleanup(void)" (?WSACleanup@@$$J10YGHXZ)" in Funktion ""int __cdecl main(int,char * * const)" (?main@@$$HYAHHQAPAD@Z)".
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" int __stdcall closesocket(unsigned int)" (?closesocket@@$$J14YGHI@Z)" in Funktion ""int __cdecl main(int,char * * const)" (?main@@$$HYAHHQAPAD@Z)".
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" int __stdcall connect(unsigned int,struct sockaddr const *,int)" (?connect@@$$J212YGHIPBUsockaddr@@H@Z)" in Funktion ""int __cdecl main(int,char * * const)" (?main@@$$HYAHHQAPAD@Z)".
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" unsigned short __stdcall htons(unsigned short)" (?htons@@$$J14YGGG@Z)" in Funktion ""int __cdecl main(int,char * * const)" (?main@@$$HYAHHQAPAD@Z)".
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" struct hostent * __stdcall gethostbyname(char const *)" (?gethostbyname@@$$J14YGPAUhostent@@PBD@Z)" in Funktion ""int __cdecl main(int,char * * const)" (?main@@$$HYAHHQAPAD@Z)".
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" unsigned int __stdcall socket(int,int,int)" (?socket@@$$J212YGIHHH@Z)" in Funktion ""int __cdecl main(int,char * * const)" (?main@@$$HYAHHQAPAD@Z)".
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" int __stdcall WSAStartup(unsigned short,struct WSAData *)" (?WSAStartup@@$$J18YGHGPAUWSAData@@@Z)" in Funktion ""int __cdecl main(int,char * * const)" (?main@@$$HYAHHQAPAD@Z)".
1>C:\Dokumente und Einstellungen\*******\Eigene Dateien\Visual Studio 2008\Projects\Protscanner\Debug\Protscanner.exe : fatal error LNK1120: 14 nicht aufgelöste externe Verweise.
1>Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\*zensiert*\Eigene Dateien\Visual Studio 2008\Projects\Protscanner\Protscanner\Debug\BuildLog.htm" gespeichert.
1>Protscanner - 15 Fehler, 1 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

ich habe leider keine Ahnung was damit gemeint ist und bitte um eure hilfe.

außerdem habe ich das selbe Problem mit dem Source Code von dem Buch C++ von A bis Z, also denke ich dass es nicht am Soure liegt, aber woran dann?

danke im vorraus

Gruß
 
Zuletzt bearbeitet:
Code:
1>c:\dokumente und einstellungen\*zensiert*\eigene dateien\visual studio 2008\projects\protscanner\protscanner\main.cpp(47) : warning C4700: Die nicht initialisierte lokale Variable "s" wurde verwendet.
Die Fehlermeldung ist noch recht eindeutig.

Code:
1>main.obj : error LNK2028: Nicht aufgelöstes Token (0A000285) ""extern "C" int __stdcall connect(unsigned int,struct sockaddr const *,int)" (?connect@@$$J212YGHIPBUsockaddr@@H@Z)", auf das in Funktion ""int __cdecl main(int,char * * const)" (?main@@$$HYAHHQAPAD@Z)" verwiesen wird.[...]
Die sind schon etwas kniffliger. Sind die benötigten Bibliotheken entsprechend eingebunden worden? Stehen sie auf der Link-Liste? Arbeite selbst momentan nicht VS, die Fehlermeldung erinnert mich aber ein wenig an ein Problem, welches ein Kollege neulich hatte. Schließlich hat er dann entsprechend benötigte Libs in eine Link-Liste eingetragen, und schon konnte der Linker ordentlich arbeiten.

Am Unkenntlichmachen von Pfadfragmenten solltest du dich übrigens noch ein wenig üben. :-)
 
Hallo,
Danke für deine Antwort, das mit der Variable s war ja nur ein kleiner Fehler und wie ich den behoben habe, hat das leider nix verändert :(

zum 2ten was du geschrieben hast, hast du da vl nähere Infos?

Danke
Gruß
 
das mit der Variable s war ja nur ein kleiner Fehler und wie ich den behoben habe, hat das leider nix verändert :(
War auch nicht zu erwarten, denn ein Problem beim Linken hat grundsätzlich nichts mit einer Variable zu tun.

zum 2ten was du geschrieben hast, hast du da vl nähere Infos?
Leider nicht. Schau einfach mal unter den Build-Settings für dein momentanes Build-Target nach. Dort solltest du auch die Möglichkeit haben den Linker zu konfigurieren. Auch kann dir die MSDN-Knowledgebase sicherlich weiterhelfen.

Was mir spontan auffällt ist, dass du eine Express-Edition verwendest. Zwar würde es mich sehr verwundern, aber womöglich sind diverse, von dir benötigte C-Bibliotheken nicht mitgeliefert worden. Gibt es denn eine gesonderte C Express Edition? Wenn ja, könntest du dir diese herunterladen und die entsprechenden Object-Files in den entsprechenden Ordner der C++ Express Edition packen.

Alternativ bietet es sich auch an (sofern denn auf den MS-Compiler verzichtet werden kann) testweise einen anderen Compiler wie den GCC zu verwenden.
 
Hallo,

ok, dann werd ich mal da überall rumschauen


mit den anderen Compilern geht es leider auch nicht :
zb: Dec-C++
Bei dem kommen so ziemlich die sleben Fehler

naja, vl find ich was

Danke für deine Hilfe !!

Gruß
 
Hallo

:/
ich habe endlich das Problem gefunden,das ich jetzt schon so lange habe :

Für alle die das selbe Problem haben

#pragma comment(lib, "ws2_32.lib")

Danke für die Hilfe
Gruß
 
Das haben maetimmae und ich dir die ganze Zeit gesagt...hast du überhaupt eine Ahnung, was eine lib und eine dll ist?

edit: War nicht böse gemeint, aber du weisst es ja anscheinend wirklich nicht
Wie devDevil schon gesagt hat, solltest du am Anfang eher leichtere Programme machen
 
Zuletzt bearbeitet:
1) so blöd Antworten kannst du dir ruhig sparen, die braucht nähmlich keiner
2) ich habs ja durch ihre Hilfe gefunden, wegen diesen Antworten habe ich danach gesucht und habe es gefunden und falls jemand das selbe Problem hat, dann hat er damit das problem gelöst
 
Wie wäre es mit Rauswurf? :D Schön nett zu einander bitte ;)

Eh und zum Thema. Du solltest nicht mit einem Port-Scanner anfangen, wenn du die Grundlagen nicht drauf hast. Wenn einem bei ner Funktion die Definition fehlt muss man, solange die Funktion nicht in diesem Projekt geschrieben wurde, nunmal nach der Bibliothek suchen, die man da verwendet (Winsock2) und da die entsprechenden Funktionen nachschlagen (z.B. http://msdn.microsoft.com/en-us/library/ms742213(VS.85).aspx). Dort wird einem nunmal die Bibliothek angegeben (Ws2_32.lib). Darin befinden sich die Definitionen und nach Linken dieser sollte das Problem behoben sein.

Da das aber eher nen Anfängerfehler ist solltest du deine Aufgabe ändern ;)
 
Zurück