IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Autres éditeurs Discussion :

Wrapper C++ avec SWIG


Sujet :

Autres éditeurs

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 69
    Points : 36
    Points
    36
    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.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Points : 1 069
    Points
    1 069
    Par défaut
    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.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 69
    Points : 36
    Points
    36
    Par défaut
    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

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Points : 1 069
    Points
    1 069
    Par défaut
    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++.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 69
    Points : 36
    Points
    36
    Par défaut
    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.

Discussions similaires

  1. Portage Linux->Windows module python généré avec SWIG
    Par GeoPy dans le forum Déploiement/Installation
    Réponses: 0
    Dernier message: 13/05/2011, 16h02
  2. Transformer structure (argument de fonction) de C++ vers Python avec swig
    Par developers dans le forum Interfaçage autre langage
    Réponses: 0
    Dernier message: 20/07/2010, 11h44
  3. Generation de code avec swig C++ vers java
    Par doommick31 dans le forum C++
    Réponses: 1
    Dernier message: 22/01/2010, 12h53
  4. [swig] Interfacer "const MyClass& obj" avec SWIG
    Par Alexis.M dans le forum Interfaçage autre langage
    Réponses: 2
    Dernier message: 30/06/2009, 16h46
  5. Extension python en c avec swig sous win32
    Par liomec dans le forum Interfaçage autre langage
    Réponses: 7
    Dernier message: 31/08/2008, 16h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo