Probleme Hostname Visual C++

Résolu
Steph115 Messages postés 163 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 3 février 2012 - 21 juil. 2004 à 01:11
Steph115 Messages postés 163 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 3 février 2012 - 21 juil. 2004 à 01:52
Salut a tous voila j'ai vu que la fonction gethostbyname defini comme suit :

This function gets host data corresponding to a host name.

struct hostent *gethostbyname(const char *name );
Parameters
name
[out] Pointer to the null-terminated string that contains the host name to resolve.

mon code est :
#include <stdlib.h>
#include <Windows.h>
#include <winsock.h>
#define TAILLE_BUFFER 264
typedef struct hostent Hostent;

int main(){
  char hostname[TAILLE_BUFFER);
  Hostent *hosts;
  
  //Stocke dans hostname le nom de la machine
  hosts = gethostbyname(hostname);

  return EXIT_SUCCESS;
}


Voila les erreurs :
Linking...
main.obj : error LNK2001: unresolved external symbol _gethostbyname@4
Calendrier/Calendrier.exe : fatal error LNK1120: 1 unresolved externals

Merci de votre aide ++ Nexus

Chaque problème a sa solution. S'il n'y a pas de solution c'est qu'il n'y a pas de problème.

3 réponses

cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
21 juil. 2004 à 01:38
Salut,
Il faut linker ws2_32.lib
sous visual c++ tu peux mettre cette ligne en dessous des #include:
#pragma comment(lib, "ws2_32.lib")

De plus, avant d'appeler cette fonction, il faut initialiser winsock en appelant la fonction WSAStartup().
Aussi, il ne faut pas oublier WSACleanup() a la fin.
3
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
21 juil. 2004 à 01:44
Salut,
et je viens de voir le commentaire "Stocke dans hostname le nom de la machine".
Si tu veux trouver le nom de la machine c'est pas avec gethostbyname mais avec gethostname que tu l'aura.

Je sais pas ou tu a trouvé cette doc, mais le param de gethostbyname n'est pas [out] mais [in].
3
Steph115 Messages postés 163 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 3 février 2012
21 juil. 2004 à 01:52
SAlut et encore merci j'ai fait avec gethostname et ca marche
la ou j'ai trouver ce out est un copier coller exact de la msdn tu peux l'avoir a l'adresse : gethostbyname

Voila encore merci ++

pour ceux que ca interesse je met le code ici

#incldue <Windows.h>
#include <winsock.h>
#pragma comment(lib, "ws2_32.lib")
#define TAILLE_BUFFER 264

int main(){
  char hostname[TAILLE_BUFFER];
  WORD wVersionRequested;
  WSADATA wsaData;

  wVersionRequested = MAKEWORD( 2, 2 );
  WSAStartup( wVersionRequested, &wsaData );

  gethostname(hostname, TAILLE_BUFFER);
  
  WSACleanup();
  
  return EXIT_SUCCESS;
}


Chaque problème a sa solution. S'il n'y a pas de solution c'est qu'il n'y a pas de problème.
0
Rejoignez-nous