On va y arriver, tu vas voir.
Premièrement, tes fichiers bmp_io.H et bmp_io.C sont des fichiers en lanagage C. Dans ces fichiers, le code utilise le type "size_t" qui est défini
soit dans l'entête <stdlib.h> (pour le langage C), soit dans l'entête <cstdlib> (pour le langage C++).
Or le code suivant :
using ::size_t; using ::div_t; using ::ldiv_t;
Est du code C++ et non pas C (l'utilisation de "::" n'existe pas en C).
Donc deuxièmement, si tu as ce message d'erreur :
c:\program files\microsoft visual studio 8\vc\include\cstdlib(18) : error C2143: syntax error : missing '{' before ':'
C'est que ton compilateur utilise la definition C++ de size_t alors qu'il compile du code C. D'où l'erreur !
Donc il faut impérativement qu'au moment ou tu fasses :
, le compilateur ait inclus juste avant le fichier <stdlib.h> et surtout pas de <cstlib> !
Vérifie tous tes "#include" dans tous tes fichiers (*.h, *.c, *.cpp) et ayant à l'esprit que les #include de code C doivent toujours avoir lieu avant les #include de code C++.
Mais j'y penses ..., essaye de compiler séparément tes fichiers bmp_io.c, ... dans une librairie statique (tu compile d'un côté tout ce qui est C, et d'un autre côté tout ce qui est C++). Puis ensuite tu rajoutes la librairie aux fichiers lors de l'édition de liens.
Partager