Précédent   Forum du club des développeurs et IT Pro > C et C++ > Outils pour C & C++
Outils pour C & C++ Forum d'entraide sur les outils de développement pour C & C++
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 29/05/2012, 12h36   #1
ZeNoob
Invité régulier
 
Inscription : avril 2012
Messages : 54
Détails du profil
Informations forums :
Inscription : avril 2012
Messages : 54
Points : 7
Points : 7
Par défaut Wrapper C++ avec SWIG

Bonjour,

Je cherche à faire un wrapper avec le logiciel SWIG, j'explique un peu :
j'ai du code en C++ qui dépend d'une librairie et j'aimerais faire un wrapper autour de mon code de façon à séparer ce qui dépend de la librairie et ce qui n'en dépend pas. J'ai commencé manuellement à encapsuler mes classes et fonctions dans un wrapper OK pour le principe, le problème c'est que j'ai énormément de fonction, d'opérateurs, de macros etc ... (tous dépendent de la fameuse librairie) ... bref c'est un travail de fourmis j'y arriverai jamais !

Donc je voudrais utiliser SWIG qui encapsule de façon automatique des fonction, le problème est que dans les documents SWIG que j'ai lus je ne vois pas le C++ comme langage de sortie (target language) ...
Et cela me surprend beaucoup !

Quelqu'un pourrait-il m'éclairer là-dessus ... Comment utilise SWIG avec comme langage source le C++ et comme langage de sortie le C++ aussi !

Merci beaucoup.

Bonne journée.
ZeNoob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2012, 01h42   #2
aoyou
Membre émérite
 
Inscription : mars 2005
Messages : 860
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 860
Points : 964
Points : 964
Quand je te lis, j'ai l'impression que tu es totalement sur la mauvaise voie.

SWIG permet de générer du C++ pour s'interconnecter avec d'autres langages (Python, Java...). On parle de wrapper du code pour un autre langage.

Mais on parle aussi de wrapper en tant que design pattern. Dans ce cas, un wrapper permet d'adapter une classe à une autre attendue par le client.

J'ai l'impression que tu te situes dans le second cas et SWIG ne te sera d'aucune utilité.

Si tu n'arrives pas à isoler l'utilisation de la librairie et que tout ton code repose dessus, il n'y aura pas de miracle. Tu seras fortement lié à cette librairie et tu ne pourras pas y échapper.
aoyou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2012, 09h45   #3
ZeNoob
Invité régulier
 
Inscription : avril 2012
Messages : 54
Détails du profil
Informations forums :
Inscription : avril 2012
Messages : 54
Points : 7
Points : 7
Oui en effet je souhaite un petit peu détourner Swig pour mon usage.
j'ai besoin d'encapsuler toutes les classes et fonctions de ma librairie donc de me faire un wrapper autour de cette librairie ... mais tout en restant en c++, pas d'interfaçage avec un autre langage ... Et en lisant la doc Swig j'ai l'impression que ça n'est pas possible.

Sauf que mon chef me parle d'une extension Swig qui permettrait de réaliser cela et j'ai beau chercher, je ne trouve rien
ZeNoob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2012, 20h19   #4
aoyou
Membre émérite
 
Inscription : mars 2005
Messages : 860
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 860
Points : 964
Points : 964
Pas de swig pour générer du C++ (à la limite du C mais je crois que ce n'est encore que dans les cartons). Ça n'a aucun sens.

Soit tu fais une façade pour ne proposer que les services de la librairie qui t'intéressent. Soit tu isoles la partie de code qui utilise la librairie. Soit tu acceptes d'être totalement dépendant de cette librairie. Mais pas de swig pour générer du C++ à partir de C++.
aoyou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2012, 11h58   #5
ZeNoob
Invité régulier
 
Inscription : avril 2012
Messages : 54
Détails du profil
Informations forums :
Inscription : avril 2012
Messages : 54
Points : 7
Points : 7
Ok pas de C++ à partir de C++ dans Swig, merci c'est ce que je voulais savoir

Sinon si si ça a du sens mais j'arrive peut-être pas à l'expliquer convenablement, en tout cas dans mon code il y a déjà des wrapper autour de plusieurs librairies (c'est pas moi qui les ai faits )

En fait un peu partout dans mon code il y a des appels de fonctions de cette fameuse librairie et donc toutes les parties du code qui appellent ces fonctions sont dépendantes directement de cette librairie, ce que je dois faire c'est encapsuler toutes ces fonctions, les réunir dans un wrapper, ensuite tous les appels de fonctions appelleront la fonction correspondante du wrapper (et non de la librairie), ainsi le code dépendra uniquement du wrapper mais SEUL le wrapper dépendra directement de la librairie. Voilà c'est peut-être plus clair.

Bon du coup faut que je me tape le travail d'encapsulation manuellement, bah j'en ai pour 3 mois là

Merci, bonne journée.
ZeNoob est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 18h32.


 
 
 
 
Partenaires

Hébergement Web