bonjour tout le monde,
je suis depuis récemment sur une TMA dans le cadre de laquelle je dois faire migrer un vieil applicatif écrit en C sous windows server 2008 en 64 bits (entre autres).
et là je dois avouer que je suis plutôt perdu parce que je suis loin d'être super à l'aise en C.
donc, premier test, j'essaie simplement d'installer sous windows server 2008 la version de l'appli qui tourne sur windows XP (on sait jamais). ca fonctionne à moitié: certains "modules" de l'appli sont opérationnels, mais un des modules me génère une erreur sur un appel de la fonction OpenFileMapping. un GetLastError() me renvoie alors le code 2 qui semble indiquer qu'un fichier n'a pas été trouvé (ERROR_FILE_NOT_FOUND), alors que la création du "file mapping" par CreateFileMapping n'a généré aucune erreur...
ma première question est donc la suivante: l'un d'entre vous a t il une idée de ce qui peut se passer?
bref, étant donné que j'avance pas sur cette investigation, je me suis dit que j'allais tenter de compiler tout ça directement sur Windows server 2008, avec visual studio 2008 (v9.0). la encore, on sait jamais...
mais en fait le projet a été développé avec iostream.h, que le compilateur de VS2008 ne connait pas. donc en cherchant un peu, je décrouvre que iostream.h c'est de la merde (c'est pas moi qui le dit hein) et que maintenant, il faut utiliser iostream avec un "using namespace std;" après les include... l'erreur concernant iostream.h n'est alors plus qu'un souvenir, mais j'en ai bien d'autres, notamment des
"error C2143: erreur de syntaxe*: absence de '{' avant ':' "
par dizaines dans le fichier cstdio sur des instruction du genre "using ::_Filet;".
après quelques recherches, j'apprends que cstdio est la version standardisée de stdio.h (sauf erreur de ma part?). mais que j'inclue stdio.h ou cstdio, c'est la même chose et les mêmes erreurs. une autre recherche sur le mots clés du langage C semble montrer que le mot "using" fait partie du C++ et non du C; et que le fichier cstdio en est plein (de using)...
j'en viens donc ma 2e (série de) question(s):
y a t il un truc que j'ai compris de travers (voire pas du tout)?
comment puis-je continuer à utiliser iostream.h avec vs2008 ou à défaut, y a t il une façon d'utiliser iostream avec du C?
merci d'avance aux âmes charitables et cultivées qui sauront me répondre![]()
Partager