wo ist der fehler? winsock



  • hi
    mach grad ein tutorial zum thema winsock.
    der beispiel code funzt bei mir nicht. fehlermeldung:error: C2011 'fd_set' : 'struct' typneudefinition. zeigt mir den fehler in der winsock2.h an.
    arbeite mit visual studio.net die 2003er. hoffe mir kann jemand helfen.
    hab ne win32, leere konsolenanwendung genommen.
    hier der code:

    #include <windows.h>
    #include <winsock2.h>
    #include <stdio.h>
    
    //Prototypen
    
    int startWinsock(void);
    
    int main()
    {
    	long rc;
    	rc=startWinsock();
    
    		if(rc!=0)
    		{ 
    			printf("Fehler: startWinsock, fehler code: %d\n",rc);
    			return 1;
    		}
    
    		else
    		{
    			printf("Winsock gestartet!\n");
    		 }
    	return 0;
    }
    
    	int startWinsock(void)
    	{
    		WSADATA wsa;
    		return WSAStartup(MAKEWORD(2,0),&wsa);
    	}
    


  • Deinem Code nach zu urteilen, würde ich jetzt auf das Tutorial von c-worker.ch tippen. Dort steht im Kopf auch folgendes:

    c-worker.ch schrieb:

    Hinweise

    Falls beim kompilieren einige "Neudefinition" Fehler kommen entfernt die "#include <winsock2.h>" Zeile (wurde in diesem Fall schon in windows.h includiert)
    Falls der Compiler ADDR_ANY nicht finden kann verwendet INADDR_ANY.

    Solltest du vielleicht mal ausprobieren 🙂



  • vielen dank für deine schnelle antwort 👍
    ja das ist das tut. und ich hab das natürlich komplett überlesen. 🙄
    hab jetzt wieder n fehler 😃 . LNK2019. denke mal das das auf die lib zurückzuführen ist.
    "Hinweis: Falls man Visual Studio verwendet muss man bei den Projekteigenschaften unter Linker ws2_32.lib zu den Libraries hinzufügen."
    habe die lib bei linker-erweitert-bibliothek importieren reingeschrieben. ist das so richtig?
    fehler: LNK2019:nicht aufgelöstes externes symbol _WSAStartup@8, verwiesen in funktion int_cdecl startWinsock(void)"(?startwinsock@@YAHXZ)



  • du musst 'ws2_32.lib' mit dazulinken



  • bastel jetzt schon ne ganze weile dran rum. ich bekomme die Ws2_32.dll einfach nicht verlinkt. kann mir bitte jemand genau sagen wie das geht. hab visual studio.net (2003)



  • Entweder im Code mittels #pragma comment(lib, "ws2_32.lib") oder in den Projektoptionen unter "Linker" bei "Zusätzliche Abhängigkeiten" eintragen.



  • perfekt.
    ich danke dir masterofx32. mit #pragma comment(lib, "ws2_32.lib") klappt es wunderbar. thx


Anmelden zum Antworten