voici ce que j'ai :
- un fichier lib : saveOutlookLib.c
- le fichier principal : saveOutlookClient.c
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 #include <winsock2.h> #pragma comment(lib,"ws2_32.lib") // si vous compiler sous Borland . . définitions de constantes et de fonctions . .
A priori tout va bien il me semble :s
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 #include <windows.h> #include "saveOutlookLib.c" // Fonction Principale :p int main(int argc, char *argv[], char **envp){ WSADATA wsaData; int res, sock; // Importation de l'API Socket if((res = WSAStartup(MAKEWORD(2,0), &wsaData)) != 0){ perror("Pb Importation dll API Socket :s\n"); return -1; // on quitte alors le programme } // Création d'une instance de socket (protocole TCP/IP) if ( (sock=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) == INVALID_SOCKET){ perror("Pb Création Instance Socket TCP/IP\n"); return -1; // echec } close(sock); WSACleanup(); exit(0); }
Voici l'erreur de compilation :
Si kelk1 peut m'aider plz.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 #C:\Documents and Settings\admin\Bureau>gcc -c saveOutlookLib.c #C:\Documents and Settings\admin\Bureau>gcc -c saveOutlookClient.cpp #C:\Documents and Settings\admin\Bureau>gcc saveOutlookClient.o -o cli.exe saveOutlookClient.o(.text+0x2db):saveOutlookClient.cpp: undefined reference to ` WSAStartup@8' saveOutlookClient.o(.text+0x321):saveOutlookClient.cpp: undefined reference to ` socket@12' saveOutlookClient.o(.text+0x360):saveOutlookClient.cpp: undefined reference to ` WSACleanup@0' collect2: ld returned 1 exit status #C:\Documents and Settings\admin\Bureau>
c'est la firs fois que je fais du C sous Windows :s
PS : j'ai un autre pb : lorsque j'utilise la fonction bzero dpe string.h dans ma librairie, je peux la comiler mais j'obtiens une erreur dessus lorsque je compile comme ci-dessus le prog principal :s
Last Question : est ce que ça, ça peut marcher sous windows :
i.e : peut on faire un write sur une socket ou faut obligatoirement passer par un send ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 do{ bzero(&(buffer),BUFFER); bytesLus=fread(buffer,1,BUFFER,fd); write(sock,buffer,bytesLus); }while(bytesLus == BUFFER);
Merci d'avance
++
Partager