Bonjour, j'aimerais savoir si il est possible de créer de librairie dynamique ( pour windows et linux ) avec du code c++ dedans ?
De plus si oui, pourrais-je utiliser ses librairies en C ?
merci de m'aider.
Bonjour, j'aimerais savoir si il est possible de créer de librairie dynamique ( pour windows et linux ) avec du code c++ dedans ?
De plus si oui, pourrais-je utiliser ses librairies en C ?
merci de m'aider.
Salut,
Alors, d'abord, pour info, bien que le terme soit "library" en anglais, en francais, on parle plutot de bibliotheque
Ensuite, oui, il y a parfaitement moyen de créer des bibliotheques en C++, qu'elles soient statiques ou dynamique
Enfin, si tu programme ta bibliotheque en C++ "objet", il sera difficile de la faire fonctionner en C, mais pas impossible
De nombreux threads sur ce forum ont trait à tout cela... pense à faire une recherche![]()
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
Coder efficacement en C++ : dans les bacs le 17 février 2014
mon tout nouveau blog
Pour les bibliothèques à liaison dynamique, je ne connais que celles de windows (DLL).
Sous Windows, il faut savoir que seule l'interface C (les noms de fonction en C) est standardisée, les noms C++ étant laissés à la discrétion du compilateur. Ainsi, les classes C++ d'une DLL compilée sous Visual ne seront pas accessibles d'un programme compilé sous gcc.
Donc, exposer des classes se fait rarement, sauf pour MFC (qui est l'apanage de Visual) ou sans doute aussi les bibliothèques Borland.
Une fois cela dit, il suffit qu'une fonction ait une interface C pour qu'elle puisse être utilisée de partout. Pour déclarer une fonction C++ comme ayant son interface en C, il faut:
- Qu'elle ne soit pas membre d'une classe (évidemment)
- Utiliser la séquence extern "C".
Un exemple complet ici:
http://www.developpez.net/forums/sho...d.php?t=256281
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Partager