J'ai une bibliothèque C héritée, écrite sous une forme de type OO. Les fonctions typiques sont comme:Ecriture d'un wrapper C++ pour une bibliothèque C
LIB *lib_new();
void lib_free(LIB *lib);
int lib_add_option(LIB *lib, int flags);
void lib_change_name(LIB *lib, char *name);
Je voudrais utiliser cette bibliothèque dans mon programme C++, donc je pense un C++ emballage est nécessaire. ci-dessus sembleraient tout à la carte quelque chose comme:
class LIB
{
public:
LIB();
~LIB();
int add_option(int flags);
void change_name(char *name);
...
};
Je ne l'ai jamais écrit un C++ autour wrapper C avant, et ne peut pas trouver beaucoup de conseils à ce sujet. Est-ce une bonne/typique/sensible à la création d'un wrapper C++/C?
Ne vous répétez pas? –
@Neil: Ne pas être combatif? –
Je ne suis pas d'accord (mais pas de downvote). Pour les librairies C simples, un wrapper est souvent inutile. Cependant, pour les librairies C plus compliquées, un wrapper C léger peut être inestimable. Un exemple me vient à l'esprit: Tibco a un emballage très léger autour de Tibrv, ce qui est extrêmement utile. –