PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit "winsock2.h"



Perishand
13.12.2007, 19:50
Hallo,

ich habe versucht den DKCS wurmbot zu kompilieren bin jedoch gescheitert.
Da ich ein absoluter noob in sachen C und C++ bin, weiß ich nicht was ich mit dieser Fehlermeldung machen soll:

1>.\main.cpp(15) : fatal error C1083: Datei (Include) kann nicht geöffnet werden: "winsock2.h": No such file or directory

so ich habe ganz Free-Hack, Google und Abacho abgesucht, habe jedoch nichts gefunden.

Ich habe mich informiert und denke mir jetzt, dass mir eine Datei mit diesem Namen also "winsock2.h" fehlt, jedoch weiß ich absolut nicht wie ich diese finden kann. Google hat leider zu keinem Ergebnis geführt, hier auf Free-Hack wurden alle diese Fragen unbeantwortet offen stehen gelassen, deswegen frage ich jetzt erneut:

Wo bekomme ich diese Bibliotheken her?

PS: ich benutze als Kompilierer MS visual C++ Express.

l0dsb
13.12.2007, 20:04
MS visual C++ Express
Du benötigst noch das Platform SDK, das die Header-Dateien (sowie Lib-Files) für Win32-Anwendungen enthält. Guck dir am besten ein Tutorial zum Einrichten des Express Compilers an (gibt's zu Hauf bei Google, such dir ein gutes raus).

Das PSDK gibt's bei M$.

Perishand
13.12.2007, 22:47
Erstmal danke für deinen Tipp, aber jetzt bekomme ich eine neue Fehlermeldung:

1>Release\spazm.exe : fatal error LNK1120: 14 nicht aufgelöste externe Verweise.

Weiß jemand rat? und jetzt würde dieser Thread wohl eher in "Bots..." passen.

l0dsb
14.12.2007, 11:47
Er listet die die externen Verweise, die fehlen, doch bestimmt auf? :) - Quote bitte mal, welche es sind. So wie es aussieht, fehlt dir noch eine lib.

Perishand
14.12.2007, 13:40
1>Verknüpfen...
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__AdjustTokenPrivileges@24" in Funktion ""int __cdecl GetPrivilege(char *)" (?GetPrivilege@@YAHPAD@Z)".
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__LookupPrivilegeValueA@12" in Funktion ""int __cdecl GetPrivilege(char *)" (?GetPrivilege@@YAHPAD@Z)".
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__OpenProcessToken@12" in Funktion ""int __cdecl GetPrivilege(char *)" (?GetPrivilege@@YAHPAD@Z)".
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__ShellExecuteA@24" in Funktion ""unsigned long __stdcall DownloadFile(void *)" (?DownloadFile@@YGKPAX@Z)".
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__RegCloseKey@4" in Funktion ""int __cdecl HKEYRecord(char * const)" (?HKEYRecord@@YAHQAD@Z)".
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__RegSetValueExA@24" in Funktion ""int __cdecl HKEYRecord(char * const)" (?HKEYRecord@@YAHQAD@Z)".
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__RegCreateKeyA@12" in Funktion ""int __cdecl HKEYRecord(char * const)" (?HKEYRecord@@YAHQAD@Z)".
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__CloseServiceHandle@4" in Funktion ""int __cdecl MAKEService(char * const)" (?MAKEService@@YAHQAD@Z)".
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__CreateServiceA@52" in Funktion ""int __cdecl MAKEService(char * const)" (?MAKEService@@YAHQAD@Z)".
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__OpenSCManagerA@12" in Funktion ""int __cdecl MAKEService(char * const)" (?MAKEService@@YAHQAD@Z)".
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__RegEnumKeyExA@32" in Funktion ""void __cdecl EnumOutlookAccounts(void)" (?EnumOutlookAccounts@@YAXXZ)".
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__RegQueryValueExA@24" in Funktion ""void __cdecl EnumOutlookAccounts(void)" (?EnumOutlookAccounts@@YAXXZ)".
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__RegOpenKeyExA@20" in Funktion ""void __cdecl EnumOutlookAccounts(void)" (?EnumOutlookAccounts@@YAXXZ)".
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__StartServiceA@12" in Funktion ""void __cdecl RegisterFrwBypassingDriver(void)" (?RegisterFrwBypassingDriver@@YAXXZ)".
1>Release\spazm.exe : fatal error LNK1120: 14 nicht aufgelöste externe Verweise.



Ich hoffe das sagt dir was :D Und nochmals danke für deine Hilfe.

l0dsb
14.12.2007, 13:49
Das habe ich gerade gefunden, es scheint alles Wichtige zu beinhalten. Habe es nicht geschrieben, sondern bei Google gefunden. Ich hoffe es hilft dir.

Sollte das als Tutorial gelten, können die Mods es ja entsprechend verschieben (oder mir eine PM schicken, ich kann das dann auch machen).


Visual C++ 2005 Express Edition mit dem Microsoft Platform SDK benutzen
Du kannst Visual C++ Express sofort, nach der Installtiom, zum Erstellen von mächtigen Applikationen nutzen. Um mit Visual C++ Express Win32 Anwendungen erzeugen zu können sind aber noch einige Schritte nötig. Ich werde die nötigen Schritte zum Erstellen von Win32 mit Visual C++ Express auflisten:

Schritt 1: Visual C++ installieren
Wenn du es noch nicht installiert hast, dann http://msdn.microsoft.com/vstudio/express/downloads/

Schritt 2: Das Plattform SDK installieren
Insatlliere das Plattform SDK über eine Web-Installation aus dem Download Center. Folge den Anweisungen und installiere das SDK für die x86 Plattform.

Schritt 3: Aktualisiere die Visual C++ Verzeichnisse in der Projekt und Solutions(?) Abteilung im Optionsfenster.
Füge die Pfade zu den richtigen Unterverzeichnissen hinzu:
Ausführbare Datein: C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Bin
Include Datein: C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include
Bibliotheken(libs) : C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib

Notiz: Alternativ kannst du die Visual C++ Verzeichnisse aktualisieren indem du die Datei VCProjectEngine.dll.express.config bearbeitest die sich im Unterverzeichniss \vc\vcpackages der Visual C++ Installation befindet. Bitte stelle sicher, dass du die Datei vccomponents.dat im Verzeichnis %USERPROFILE%\Local Settings\Application Data\Microsoft\VCExpress\8.0 löscht bevor du Visual C++ neustartest.

Schritt 4: Aktualisieren der Datei corewin_express.vsprops
Ein weiter Schritt ist notwendig um Win32 Templates in Visual C++ nutzen zu können. Du musst die Datei corewin_express.vsprops(siehe C:\Program Files\Microsoft Visual Studio 8\VC\VCProjectDefaults) bearbeiten und ändere die Zeile AdditionalDependencies="kernel32.lib" zu AdditionalDependencies="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib"

Schritt 5: Erstellen und kompilieren einer Win32 Anwendung um deine Einstellungen(Pfade) zu testen
In Visual C++ Express sind Win32 Anwendungen im Wizard deaktiviert. Um sie zu aktivieren musst du die Datei AppSettings.htm im Verzeichnis “%ProgramFiles%\Microsoft Visual Studio 8\VC\VCWizards\AppWiz\Generic\Application\html\103 3" bearbeiten.

Im Texteditor kommentiere die Zeilen 441 bis 444 aus in dem du ein // vor die Zeile schreibst, wie hier gezeigt:
// WIN_APP.disabled = true;
// WIN_APP_LABEL.disabled = true;
// DLL_APP.disabled = true;
// DLL_APP_LABEL.disabled = true;

Speichere und schließe die Datei und öffne Visual C++. Vom Dateimenü wähle Neues Projekt. Im neuen Dialog erweitere den Baum und clicke auf Win32. Clicke auf das Win32 Konsolenanwendung Template, gib deinem Projekt einen Namen und drücke auf ok. Setlle im Wizard sicher das du Win32 ausgewählt hast und ATL nicht ausgewählt ist. Drücke auf Fertig.

Der letze Schritt: Teste deine Anwendung durch das drücken des Start Knopfs ind er IDE oder durch das drücken der F5 Taste. Deine Anwedung sollte kompiliert werden und starten.

wuff
14.12.2007, 14:07
ich glaub nicht das das am compiler liegt. der fehler kommt normalerweise dann wenn zwar ein header mit funktionsdifinitionen existiert (bzw. im projekt angegeben ist), aber der code fehlt (also die .c oder .cpp datei). dadurch kommt erst eine fehlermeldung beim linken.

überprüf mal ob du auch alle .cpp dateien (die dem bot beiliegen) im vs-projekt hast. wenn eine fehlt einfach zum projekt hinzufügen.

l0dsb
14.12.2007, 14:51
In diesem Fall liegt es wohl eher am Compiler. Die Express Edition ist beim ersten Installieren auf .net ausgerichtet, kann aber ebenso auch Win32. Dazu braucht man jedoch das PSDK, dessen Header noch bei den Includes hinzugefügt werden sollten (ebenso die libs).