Bonjour,

J'ai fait une biblioth�que statique en C++ et pour l'attaquer j'ai fait une structure avec des fonctions contenant que des types primitifs.

L'objectif est qu'un utilisateur qui est en C pure puisse l'utiliser.

Mais je sais que la d�finition des fonctions en C++ est expos�e diff�remment dans les binaires pour g�rer les surcharges, donc le type des param�tres est indiqu� dans la d�finition emp�chant ainsi les doublons sur uniquement les noms.

Par cons�quent j'ai un doute sur la possibilit� d'utiliser ma biblioth�que en C pure. En gros, je veux fait l'inverse de "extern "C" { ... }" qu'on utilise pour importer des fonctions C afin d'exposer mes fonctions en C Style m�me si derri�re l'impl�mentation redirige vers du C++.

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
 
(lib.h)
struct Lib
{
   int MaFonction1();
   int MaFonction2();
}
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
 
(lib.cpp)
Lib::MaFonction1()
{
   Manager.FonctionCpp1();
}
Lib::MaFonction2()
{
   Manager.FonctionCpp1();
}
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
 
(main_user.c)
 
#include "lib.h"
int main(int argc, char** argv)
{
   Lib l;
   l.MaFonction1();
   l.MaFonction2();
}
Est-ce possible ? Peut-�tre qu'il n'y a juste � mettre "extern "C" {" en d�but du fichier lib.h et "}" en fin ?

Merci � tous,

A bient�t