begin process at 2012 05 30 12:26:56
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

Réseau & Internet

 > 

winSock sous VC 6


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

winSock sous VC 6

mardi 11 mars 2008 à 20:25:08 | winSock sous VC 6

Vlad Mortelame

Bonjour

J'ai fait un programme de serveur ( avec #include <winsock2.h> ) dont j'arriver à compiller sous DEV C++ (en ajoutant la librairie). Cependant je voudrais le faire sous VC 6 j'ai tout essayer et ca ne marche pas J'ai tout plein d'erreur car il ne trouve pas la librairie (e.g: "error C2275: 'SOCKET' : illegal use of this type as an expression" )

j'ai essayé:
ajouter dans projet setting > link >library modules> ws2_32.lib puis wsock32.lib puis les deux

j'ai aussi essayer #pragma comment(lib, "ws2_32.lib") et #pragma comment(lib, "wsock32.lib")

si vous avez une idée pour m' aider, je vous écoute

a++
mardi 11 mars 2008 à 21:10:18 | Re : winSock sous VC 6

SAKingdom

Membre Club
C2275 est une erreur du compilateur.

Le compilateur de C de VC++ ne supporte pas la norme C99, dont la possibilité de déclarer ses variables n'importe où dans le code. En C non C99, toute variables doivent être déclaré en début de bloc:

{
    int var1;
    int var2;
    ...
}

C++ (@++)

mercredi 12 mars 2008 à 13:56:09 | Re : winSock sous VC 6

Vlad Mortelame

Oui elle ne sont pas déclarer car il ne link pas avec la bonne librairie ou qu'il ne link pas du tout. Car sur DEV quand il link il reconnaît les variables.

Ça ne résout pas mon problème je ne vais pas taper toute la librairie au début de mon programme ...

mercredi 12 mars 2008 à 14:32:04 | Re : winSock sous VC 6

SAKingdom

Membre Club
Ce n'est pas au link que ça ne fonctionne pas mais à la compilation.
C2275 est une erreur du compilateur


Pour ton problème, il n'y a pas de solution magique. Soit tu recode le code, soit tu restes sous dev-c++ ou encore, soit tu compiles en C++.

C++ (@++)

mercredi 12 mars 2008 à 14:49:50 | Re : winSock sous VC 6

Vlad Mortelame

voila mon code (un truc tout simple) c'est mon premier programme avec winsock donc je ne gere pas du tout et en plus j'ai pompé des source d'un peu partout. A part la fin où j'ai merdé qu'est que je dois refaire ?
merci


#include <winsock.h>
#pragma comment(lib, "ws2_32.lib")

int main(void)
{
 char buffer[255] = {0} ;
 WSADATA WSAData;
 WSAStartup(MAKEWORD(2,0), &WSAData);
 SOCKET sock;
 SOCKET csock;
 SOCKADDR_IN sin;
 SOCKADDR_IN csin;
 sock = socket(AF_INET, SOCK_STREAM, 0);
 sin.sin_addr.s_addr            = INADDR_ANY;
 sin.sin_family                = AF_INET;
 sin.sin_port                = htons(6667);
 bind(sock, (SOCKADDR *)&sin, sizeof(sin));
 listen(sock, 0);
 do
 {
  int sinsize = sizeof(csin);
  if((csock = accept(sock, (SOCKADDR *)&csin, &sinsize)) != INVALID_SOCKET)
   {
     send(csock, "Bienvenue!\r\n", 12, 0);
     recv(sock, buffer, 255, 0);
     send(sock, buffer, 255, 0);
    }
}
 while(1);
}
mercredi 12 mars 2008 à 14:58:23 | Re : winSock sous VC 6

SAKingdom

Membre Club
ok tu utilise ws2_32. Utilise donc le header winsock2. Inclue aussi windows.h APRÈS winsock2.h

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

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

ça devrait fonctionner ainsi.


C++ (@++)

mercredi 12 mars 2008 à 18:25:03 | Re : winSock sous VC 6

Vlad Mortelame

J'ai ajouté comme tu me l'as conseillé mais j'ai toujours ces 15 erreures recurantes. je ne comprend vraiment pas
mercredi 12 mars 2008 à 18:37:38 | Re : winSock sous VC 6

Vlad Mortelame

par contre si je le compile en C++ ca marche mais ca ne veux pas "construire" (build)

"Linking...
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/JDR.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe."
mercredi 12 mars 2008 à 19:52:14 | Re : winSock sous VC 6

SAKingdom

Membre Club
Réponse acceptée !
Bah si tu veux compiler en C, suffis simplement de déplacer WSAStartup(MAKEWORD(2,0), &WSAData);
après toutes déclarations de variables:

char buffer[255] = {0} ;
 WSADATA WSAData;
 SOCKET sock;
 SOCKET csock;
 SOCKADDR_IN sin;
 SOCKADDR_IN csin;

 WSAStartup(MAKEWORD(2,0), &WSAData);

Pour l'erreur de link, c'est que tu as créé un projet windows (GUI) mais que tu utilises un main de console. Tu as 2 choix, soit tu recrées un projet console, soit tu changes ton
int main () par:
int __stdcall WinMain (HINSTANCE hInst, HINSTANCE hPrev, char *cmdl, int show)

Cependant, si tu travails en GUI, tu ne peux plus utiliser de console directement avec printf et compagine.

C++ (@++)

mercredi 12 mars 2008 à 19:58:14 | Re : winSock sous VC 6

Vlad Mortelame

" Bah si tu veux compiler en C, suffis simplement de déplacer WSAStartup(MAKEWORD(2,0), &WSAData);
après toutes déclarations de variables:"

voila ça marche merci de m'avoir aider car ca commencait a me prendre la tete
c'est sympa
a++


1 2

Cette discussion est classée dans : winsock, vc, essayer, librairie, lib


Répondre à ce message

Sujets en rapport avec ce message

0xa0 <-erreur VC++ [ par Toobad ] Mon vc++6 arrete pas de me faire la guelle.il m'envoie une tonne d'erreur 0xa0 partout, sur toutes les API. Je crois que c'est à cause des include ou Recherche librairie jpeg.lib pour vc++ 2008 [ par Albanderuaz ] Bonsoir, Je recherche la librairie jpeg.lib, j'en dispose d'une qui fonctionne mais qui me met une erreur de link comme quoi libc.lib est introuvable comment ajouter de nouvelles "librairies" (.lib) dans le compilateur Vc++ ? [ par pistol350 ] Je ne sais pas comment m'y prendre pour ajouter des librairies,que ce soit a partir d'une DLL ou bien directement a partir de (devpacks), si c'est com comment ajouter un .lib a son projet? [ par LaTatadu91 ] Bonjour,voila mon probleme, j'utilise actuellement des fonctions d'une librairie pour OPCet mon compilateur (visual studio 2005) me dit :error LNK2019 Divers questions sur les libs [ par titanchou ] Bonjour à tous, Je ne savais pas trop ou poser mes questions j'espere que c'est la bonne place =) Alors voila j'ai plusieurs questions concernant le Compilation de librairie VC++ (newmat) [ par repial ] Bonjour, j'utilise Visual C++ 2008 Express et je voudrais utiliser la librairie newmat ( http://www.robertnz.net/nm_intro.htm ).Pour linux c'etait sim Problème de lien avec librairie clapack.lib [ par sherault ] Bonjour, J'ai besoin d'utiliser certaines fonctions de la librairie "CLAPACK" pour du calcul d'algèbre linéaire dans ma dll (réalisée avec Visual C++ Probléme au Link (error LNK2001 sous Ms. Visual studio C++ 6.0) [ par Polack77 ] Bonjour, Je cherche à faire évoluer un ancien projet C en C++ (c'était pas si simple en faite pas mal de truc étais mal foutu dans le projet, mais sa Compatibilité VC++ Express 2010 vs Windows 2k [ par scoubidou944 ] Glop, je viens de recompiler un programme qui tournait avec VC++ 2008 Express (C++ à l'ancienne, pas de framework .NET) sous VC++ 2010 Express. L'exe


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,513 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales