[compilation C ] error!
Résolu
naruto-94
Messages postés
904
Statut
Membre
-
arth Messages postés 10414 Statut Contributeur -
arth Messages postés 10414 Statut Contributeur -
Bonsoirs,
j'ai trouver un code source sur le net et c'est exactement celui qu'il me faut pour mon reseau.. Mais quand je le compile avec Dev-C++ il me met ces erreur :
-19 C:\Dev-Cpp\ouvrir port\main.c redefinition of 'main'
-5 C:\Dev-Cpp\ouvrir port\main.c previous definition of 'main' was here
-C:\Dev-Cpp\ouvrir port\main.c In function `main':
-19 C:\Dev-Cpp\ouvrir port\main.c number of arguments doesn't match prototype ...
Le code C est :
#include <winsock2.h>
#include <windows.h>
#pragma comment(lib, "ws2_32.lib")
void main()
{
WSADATA WSAData;
WSAStartup(MAKEWORD(2,0), &WSAData); // Dîre qu'on ve utiliser des sockets
SOCKET sock;
SOCKET csock;
SOCKADDR_IN sin;
SOCKADDR_IN csin;
PROCESS_INFORMATION pi;
STARTUPINFO si;
sock = socket(AF_INET, SOCK_STREAM, 0); // Création socket
sin.sin_addr.s_addr = INADDR_ANY; // Adresse IP
sin.sin_family = AF_INET; // Famille du socket
sin.sin_port = htons(8888); // N° de port
bind(sock, (SOCKADDR *)&sin, sizeof(sin));
listen(sock, 0); // boucle d'écoute
while(1)
{
int sinsize = sizeof(csin);
GetStartupInfo(&si); // creating startupinfo for child process
if((csock = accept(sock, (SOCKADDR *)&csin, &sinsize)) != INVALID_SOCKET)
{
CreateProcess(NULL, "cmd.exe", NULL, NULL,TRUE, CREATE_NEW_CONSOLE,NULL,NULL,(STARTUPINFO*)&si,&pi);
}
}
}
Merci de vos reponses bonne nuit ;)
j'ai trouver un code source sur le net et c'est exactement celui qu'il me faut pour mon reseau.. Mais quand je le compile avec Dev-C++ il me met ces erreur :
-19 C:\Dev-Cpp\ouvrir port\main.c redefinition of 'main'
-5 C:\Dev-Cpp\ouvrir port\main.c previous definition of 'main' was here
-C:\Dev-Cpp\ouvrir port\main.c In function `main':
-19 C:\Dev-Cpp\ouvrir port\main.c number of arguments doesn't match prototype ...
Le code C est :
#include <winsock2.h>
#include <windows.h>
#pragma comment(lib, "ws2_32.lib")
void main()
{
WSADATA WSAData;
WSAStartup(MAKEWORD(2,0), &WSAData); // Dîre qu'on ve utiliser des sockets
SOCKET sock;
SOCKET csock;
SOCKADDR_IN sin;
SOCKADDR_IN csin;
PROCESS_INFORMATION pi;
STARTUPINFO si;
sock = socket(AF_INET, SOCK_STREAM, 0); // Création socket
sin.sin_addr.s_addr = INADDR_ANY; // Adresse IP
sin.sin_family = AF_INET; // Famille du socket
sin.sin_port = htons(8888); // N° de port
bind(sock, (SOCKADDR *)&sin, sizeof(sin));
listen(sock, 0); // boucle d'écoute
while(1)
{
int sinsize = sizeof(csin);
GetStartupInfo(&si); // creating startupinfo for child process
if((csock = accept(sock, (SOCKADDR *)&csin, &sinsize)) != INVALID_SOCKET)
{
CreateProcess(NULL, "cmd.exe", NULL, NULL,TRUE, CREATE_NEW_CONSOLE,NULL,NULL,(STARTUPINFO*)&si,&pi);
}
}
}
Merci de vos reponses bonne nuit ;)
3 réponses
Salut
euh déjà je sais pas si tu l'a fais mais pour les sockets il faut ajouter l'option "-lwsock32" dans les options du compilateur ( Outils -> Options du compilateur , et cocher "ajouter les commandes suivantes..." , puis coller l'option ci-dessus dans le cadre juste à droite ) .
sinon j'utilise aussi devc++ sous windows, et j'ai une seule erreur, celle que main doit retourner int , donc changer void main par int main. ensuite ca compile.
avec un test avec la comande "telnet localhost 8888", ca fonctionne parfaitement, ca ouvre l'invite de commande.
Sur ce bonne soirée.
euh déjà je sais pas si tu l'a fais mais pour les sockets il faut ajouter l'option "-lwsock32" dans les options du compilateur ( Outils -> Options du compilateur , et cocher "ajouter les commandes suivantes..." , puis coller l'option ci-dessus dans le cadre juste à droite ) .
sinon j'utilise aussi devc++ sous windows, et j'ai une seule erreur, celle que main doit retourner int , donc changer void main par int main. ensuite ca compile.
avec un test avec la comande "telnet localhost 8888", ca fonctionne parfaitement, ca ouvre l'invite de commande.
Sur ce bonne soirée.