Visual C++ 6 : error LNK2001: unresolved external symbol

Signaler
Messages postés
5
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
24 mai 2007
-
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
Lorsque je link ce server TCP/IP avec Visual C++ 6.0 j'ai les erreurs de link suivante :
--------------------Configuration: all - Win32 Debug--------------------
Linking...
all.obj : error LNK2001: unresolved external symbol [mailto:_recvfrom@24 _recvfrom@24]
all.obj : error LNK2001: unresolved external symbol [mailto:_sendto@24 _sendto@24]
all.obj : error LNK2001: unresolved external symbol [mailto:_inet_addr@4 _inet_addr@4]
all.obj : error LNK2001: unresolved external symbol [mailto:_htons@4 _htons@4]
all.obj : error LNK2001: unresolved external symbol [mailto:_WSAGetLastError@0 _WSAGetLastError@0]
all.obj : error LNK2001: unresolved external symbol [mailto:_socket@12 _socket@12]
all.obj : error LNK2001: unresolved external symbol [mailto:_WSAStartup@8 _WSAStartup@8]
Debug/all.exe : fatal error LNK1120: 7 unresolved externals
Error executing link.exe.


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

j'ai pourtant ajouté les librairies wsock32.lib et ws2_32.lib pour le link...

Voici le code :

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


#include "stdafx.h"


#include <sys/types.h>




#include <windows.h>
#include <winsock.h>
#include <stdio.h>
#include <conio.h>


//Prototypen


int startWinsock(void);


int main()
{
  long rc;
  SOCKET s;
  char buf[256];
  SOCKADDR_IN addr;
  SOCKADDR_IN remoteAddr;
  int         remoteAddrLen=sizeof(SOCKADDR_IN);
  rc=startWinsock();


  if(rc!=0)
  {
    printf("Fehler: startWinsock, fehler code: %d\n",rc);
    getch();
    return 1;
  }
  else
  {
    printf("Winsock gestartet!\n");
  }  //UDP Socket erstellen


  s=socket(AF_INET,SOCK_DGRAM,0);


  if(s==INVALID_SOCKET)
  {
    printf("Fehler: Der Socket konnte nicht erstellt werden, fehler code: %d\n",WSAGetLastError());
    getch();
    return 1;
  }
  else
  {
    printf("UDP Socket erstellt!\n");
  }  // addr vorbereiten


  addr.sin_family=AF_INET;
  addr.sin_port=htons(5999);
  addr.sin_addr.s_addr=inet_addr("127.0.0.1");


  while(true)
  {
    printf("Text eingeben: ");
    gets(buf);
    rc=sendto (s,buf,strlen(buf),0,(SOCKADDR*)&addr,sizeof(SOCKADDR_IN));


    if(rc==SOCKET_ERROR)
    {
      printf("Fehler: sendto, fehler code: %d\n",WSAGetLastError());
      return 1;
    }
    else
    {
      printf("%d Bytes gesendet!\n", rc);
    }


    rc=recvfrom(s,buf,256,0,(SOCKADDR*)&remoteAddr,&remoteAddrLen);
    if(rc==SOCKET_ERROR)
    {
       printf("Fehler: recvfrom, fehler code: %d\n",WSAGetLastError());
       getch();
       return 1;
    }
    else
    {
      printf("%d Bytes empfangen!\n", rc);
      buf[rc]='\0';
      printf("Empfangene Daten: %s\n",buf);
    }
  }
}


int startWinsock(void)
{
   WSADATA wsa;
   return WSAStartup(MAKEWORD(2,0),&wsa);
}

Merci pour votre aide !

1 réponse

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
A mettre dans cet ordre:


#include <winsock2.h>
#include <windows.h>


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

ciao...
BruNews, MVP VC++