Passage d'un code écrit en c++ à un code en c

Résolu
cs_aymen87 Messages postés 109 Date d'inscription samedi 3 novembre 2007 Statut Membre Dernière intervention 4 février 2016 - 2 déc. 2010 à 11:20
cs_aymen87 Messages postés 109 Date d'inscription samedi 3 novembre 2007 Statut Membre Dernière intervention 4 février 2016 - 2 déc. 2010 à 14:13
Bonjour à tous

j'ai téléchargé un code pour cryptage qui fonctionne à merveille sous vs6 (avec l'extension .cpp).
Mais pour l'intégrer dans mon application,je doit utiliser un fichier .c car je compile en gcc.

Donc je dois effectuer des changement dans le code pour qu'il puisse être compilé sous linux.

en premier lieu j'ai changé l'extension des fichier à .c et je compile toujours sous vs6 sous Windows.

J'ai eu principalement les erreurs suivantes :
c:\chemin...\destest.h(28) : error C2061: syntax error : identifier 'bool'

ce que j'ai fait est le suivant :
//remplacer tout bool par unsigned char
typedef unsigned char bool;

//définir true/false
#ifndef false
#define false 0x00
#endif

#ifndef true
#define true 0x01
#endif

Je voudrais savoir si cela est faisable ou bien il y a un standard pour ce faire.


Merci Beaucoup

4 réponses

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
2 déc. 2010 à 12:37
Un extension n'est rien. Si ton fichier s'appelait main.toto, ça fonctionnerait quand même.
On met des extensions juste pour faire joli (et parce que c'est pratique), mais on pourrait tout à fait ne pas en mettre. Un fichier appelé "main" (tout court), compilerait.

Un code C++ se convertit rarement en C (pour ne pas dire jamais). Si la personne a codé en C dans un fichier C++, tu peux t'en sortir. Mais si celle-ci a vraiment codé en C++, ce n'est pas possible (notamment s'il y a des objets, de la surcharge, des templates, etc...).

Pour ton erreur, "syntax error : identifier 'bool'", inutile de faire du typedef. Le type bool a été intégré dans le C "version de 99".
Il te suffit d'inclure "#include <stdbool.h>", et de préciser à gcc que tu compiles en C99 avec "--std=c99"

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
3
Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
2 déc. 2010 à 11:35
Salut
gcc compile aussi les codes en C++...
Tu n'as pas besoin de convertir ton code en c
A+

____________________________________________________________________________
Logiciel en traitement de l'image gratuit et open source.
0
cs_aymen87 Messages postés 109 Date d'inscription samedi 3 novembre 2007 Statut Membre Dernière intervention 4 février 2016
2 déc. 2010 à 11:49
Salut

Mais le reste de l'application est en c je devrais avoir la même extension dans les makefile .. Nn ??

Merci
0
cs_aymen87 Messages postés 109 Date d'inscription samedi 3 novembre 2007 Statut Membre Dernière intervention 4 février 2016
2 déc. 2010 à 14:13
salut

Merci pour la réponse .. le code a été écrit en c .. sauf l'utilisation du type bool .
0
Rejoignez-nous