Winsock geht nicht!



  • Hi
    Immer wenn ich in Visual C++ den untenstehenden Code Builden will kommt das: (Compilieren geht perfekt)

    --------------------Configuration: Cpp1 - Win32 Debug--------------------
    Linking...
    Cpp1.obj : error LNK2001: unresolved external symbol _WSAStartup@8
    Cpp1.obj : error LNK2001: unresolved external symbol _WSACleanup@0
    Cpp1.obj : error LNK2001: unresolved external symbol _closesocket@4
    Cpp1.obj : error LNK2001: unresolved external symbol _connect@12
    Cpp1.obj : error LNK2001: unresolved external symbol _socket@12
    Cpp1.obj : error LNK2001: unresolved external symbol _htons@4
    Cpp1.obj : error LNK2001: unresolved external symbol _inet_addr@4
    Debug/Cpp1.exe : fatal error LNK1120: 7 unresolved externals
    Error executing link.exe.

    Cpp1.exe - 8 error(s), 0 warning(s)

    Hier der Code

    #include <windows.h> 
    #include <winsock.h> 
    #include <stdio.h> 
    
    void WSAInit(void) 
      { 
       WORD wVersionReg = MAKEWORD(1, 1); 
       WSADATA wsaData; 
       if (int err = WSAStartup(wVersionReg, &wsaData) != 0) 
        { 
         puts("Fehler: Initialisieren - WinSock.dll!"); 
        } 
      } 
    
    int main(void) 
      { 
       SOCKET sock = INVALID_SOCKET; 
    
    struct sockaddr_in svr; 
    
    svr.sin_family = AF_INET; 
       svr.sin_addr.s_addr = inet_addr("127.0.0.1"); 
       svr.sin_port = htons(2001); 
    
    WSAInit(); 
    
    if ((sock = socket(AF_INET, SOCK_STREAM, 0)) == INVALID_SOCKET) 
        { 
         puts("Fehler beim Erstellen des Socket!\n"); 
         return 1; 
        } 
    
    if ( connect (sock, (struct sockaddr *) &svr, sizeof(svr)) == SOCKET_ERROR) 
        { 
         puts("Es kam keine Verbindung zustande!\n"); 
         return 1; 
        } 
    
    closesocket(sock); 
    
    WSACleanup(); 
    
    return 0; 
    }
    

    Was zum ++ mache ich Falsch???

    edit: Codetags hinzugefügt.



  • Höh?
    Das Compilieren geht perfekt und du bekommst trotzdem 7 Fehlermeldungen?
    Komisch.
    Na ja, du könntest auch einfach mal gegen wsock32.lib linken.



  • Laut PSDK soll man die ws2_32.lib einbinden.



  • Und wie baue ich eine LIB ein?



  • welchen compiler hast du? du musst das bei zusätzlichen bibliotheken eingeben



  • HAR schrieb:

    Höh?
    Das Compilieren geht perfekt und du bekommst trotzdem 7 Fehlermeldungen?

    Kompilieren und linken sind zwei verschiedene Dinge 🙂

    AttackForce schrieb:

    Und wie baue ich eine LIB ein?

    Entweder machst du das in den Projekt-Einstellungen deiner Entwicklungsumgebung oder du fügst diesen Code hinzu (der womöglich auch nur mit VC++ funktioniert):

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


  • Visual C++:

    Projekt->Einstellungen->Linker->Objekt-/Bibliothek- Module,

    da schreibst du ws2_32.lib rein

    MFG, '][' !



  • Danke jetzt gehts! 😮


Anmelden zum Antworten