voici ce que j'ai :
- un fichier lib : saveOutlookLib.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
.
.
- le fichier principal : saveOutlookClient.c
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);
}
A priori tout va bien il me semble :s
Voici l'erreur de compilation :

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>
Si kelk1 peut m'aider plz.
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 :
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);
i.e : peut on faire un write sur une socket ou faut obligatoirement passer par un send ?

Merci d'avance
++