J'ai un programme en C (et je ne peux pas le compiler en C++. Il sagit en fait d'une extension à un programme C) qui doit accéder à une bibliothèque écrite en C++.
D'un coté, j'ai mon fichier objet écrit en C++, compilé avec g++ qui permet d'utiliser la bibliothèque C++ à travers plusieurs fonctions.
D'un autre coté, j'ai mon fichier objet écrit en C, compilé avec g++ qui doit avoir accès aux fonctions du fichier objet c++.
Comment faire ?
Et je sais que c'est possible. (un binding de QT a été fait)
En fait, il sagit d'écrire un binding au language lua (écrit en C) pour la bibliothèque Ogre (écrite en C++). Il existe un programme: tolua++ qui permet de générer des fonctions que lua peut utiliser et qui permettent d'utiliser les objets C++.
Seulement je ne sais pas comment faire
Merci.
lua: http://lua.org(...)
tolua++: http://www.codenix.com/~tolua/(...)
# Pourquoi ne peux-tu pas compiler en C++ ?
Posté par abgech . Évalué à 2.
Une petite restriction toutefois le casting de type C:
provoque un warning.
[^] # Re: Pourquoi ne peux-tu pas compiler en C++ ?
Posté par Matthieu Moy (site web personnel) . Évalué à 5.
Justement, non. L'exemple le plus simple, c'est :
int main () {
int class = 0;
return class;
}
qui compile en C mais pas en C++, mais il y a aussi des tas d'autres incompatibilités plus subtiles. Pour un programme relativement gros, si personne n'a fait attention à la compatibilité C++, il y a peu de chances que le programme C compile en C++.
Pour appeler du C depuis le C++, c'est assez simple:
extern "C" {
#include "mon-en-tête-c.h"
}
(ou mieux, ajouter le 'extern "C"' dans mon-en-tête-c.h, protégé avec des #ifdef __cplusplus). Ça te demande que le .h compile en C++, mais pas forcément le .c.
Dans l'autre sens, il faut en général ajouter des wrappers pour toutes les fonctions C++ que tu veux utiliser, et les déclarer 'extern "C"'.
[^] # Re: Pourquoi ne peux-tu pas compiler en C++ ?
Posté par Mildred (site web personnel) . Évalué à 1.
Et comme je veux que mon plugin fonctionne sur tous les interpréteurs lua (et pas seulement le mien que j'aurai compilé avec g++), je ne veux pas compiler en c++
[^] # Re: Pourquoi ne peux-tu pas compiler en C++ ?
Posté par Matthieu Moy (site web personnel) . Évalué à 2.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.