Bonjour � tous,
Je doit en ce moment utiliser une biblioth�que d�velopp�e en C, mais mon projet principal est en C++. Je souhaiterais donc faire un petit wrapper C++ de cette biblioth�que et je m'interroge sur la meilleure mani�re de faire.

Elle se nomme libParse et je l'obtiens sous la forme d'un r�pertoire contenant un paquet de header et de fichiers sources. J'ai donc tous les choix possibles, modifier les sources, en faire une dll, en faire une lib statique, l'int�grer directement dans mon projet etc.

Dans un premier temps, j'ai naivement tent� de cr�er un projet C++ organis� comme ceci :

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
Projet libParseWrapper 
  rep C
     rep header // header de libParse en C
     rep source // source de libParse en C
  rep header // header de mon wrapper CPP
  rep source // source de mon wrapper CPP
Car apr�s tout le C++ est r�tro-compatible avec le C, right ? (indice : ahahahah)
J'ai compil� et ...
Malheureusement, le code C est satur� de chose de ce genre :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
 
void addTag (char * dst, char * tagname) ; // déclaration
//...
 
unsigned char buffer [64];
//...
 
addTag (buffer , "tag");
qui compile sans probl�me avec VC2005 en mode C (option "Compile as C code"). Par contre en mode C++, la sanction est imm�diate :
cannot convert parameter 1 from 'unsigned char [64]' to 'char *'
Alors bien sur, je peux supprimer l'erreur en �crivant :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
addTag ((char*)buffer, "tag");
Mais le probl�me, c'est qu'il y a plusieurs centaines d'erreurs du m�me tonneau �parpill�es dans le code

Je n'ai pas trouv� le moyen de d�sactiver ce genre d'erreur en C++, rajouter des centaines de cast risque de prendre un temps fou et j'ai un peu peur de me lancer dans une solution � base de dll....
Quelle est selon vous la meilleure mani�re de faire ?