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

C++ Discussion :

Développer une application C++ modulaire avec plugins


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 81
    Points : 65
    Points
    65
    Par défaut Développer une application C++ modulaire avec plugins
    Salut,

    Je dois créer une application supportant les plug-ins. J'ai lu le tut sur le sujet http://drq.developpez.com/dotnet/articles/plugin/ mais le problème est que je n'utilise pas le framework .NET.

    Je dois réaliser cette application en C++. Quelqu'un peut-il me dire s'il existe une version C++ du tutorial cité plus haut ou sinon quelles sont les fonctions équivalentes en C++.

    Pour info, je bosse sous Windows avec VC6.

    Merci.

  2. #2
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 279
    Points : 11 015
    Points
    11 015
    Par défaut
    Vu ton environnement, COM est probablement ce qu'il y a de plus "idiomatique". Dans la même famille mais en plus portable tu as CORBA.

    Sinon, fait des recherches sur comment charger dynamiquement des DLL, l'idée est là. Certains frameworks comme wxWidgets proposent des abstraction qui permettent de charger dynamiquement des bibliothèques quelque soit l'environnement. Dans mes souvenirs c'était également traité sur leur wiki.

    PS: cela n'est pas possible en C++ "pur". Il faut obligatoirement passer par des bibliothèques propres à l'environnement, ou des bibliothèques qui en font abstraction. => Il ne peut pas exister de "version C++ du tutorial" que tu as vu. Suivant l'approche que tu retiendras, il te faudra migrer vers un autre forum.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 81
    Points : 65
    Points
    65
    Par défaut
    En fait, je pense utiliser également Qt qui doit offrir le support de CORBA. Je vais essayer de voir si Trolltech propose des abstractions similaires à celles de WxWidgets pour le chargement dynamique des DLL.

    Le problème de COM est qu'il ne fonctionne que sur Windows, si je ne m'abuse, et un développement cross-platform Windows/Linux (avec une priorité pour Windows) est préférable.

    Juste une dernière question, pourquoi dis-tu :
    cela n'est pas possible en C++ "pur"
    Je ne comprends pas, on trouve pourtant beaucoup de logiciels qui proposent aux utilisateurs de créer leur propres plug-ins en C++.

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Je ne comprends pas, on trouve pourtant beaucoup de logiciels qui proposent aux utilisateurs de créer leur propres plug-ins en C++.
    En C++ standard, tu ne trouveras rien pour gérer les bibliothèques (dynamiques ou non), car c'est un concept qui dépend du système d'exploitation. Donc il faudra à un moment ou un autre faire appel à du code non standard (API Win32 par exemple).

  5. #5
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    je pense utiliser également Qt
    Sous windows ?
    Tu es au courant que la licence est très gênante ?

    un développement cross-platform Windows/Linux (avec une priorité pour Windows) est préférable.
    Dans ce cas là, il serait probablement plus pratique d'utiliser un compilateur qui existe sur toutes les plate-formes.
    Boost ftw

  6. #6
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 279
    Points : 11 015
    Points
    11 015
    Par défaut
    Alors effectivement Corba est une solution. Ou alors le système plus léger (et moins composant distribuable tout ça) de wxWindows.
    En cherchant un peu, je ne doute pas que tu trouveras des abstractions portables qui font ça.

    Sinon, je pense qu'il est au contraire plus intéressant d'essayer avec des compilateurs différents.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 81
    Points : 65
    Points
    65
    Par défaut
    Tu es au courant que la licence est très gênante ?
    Nous avons une vraie licence de développement Windows, payée et tout et tout. Par contre, je ne sais pas si on a le droit de distribuer les applications réalisées avec les dll Qt pour faire fonctionner l'exécutable ? Si quelqu'un peut m'éclairer ce point ?

    Sinon, je pense qu'il est au contraire plus intéressant d'essayer avec des compilateurs différents.
    Le code doit au moins compiler avec VC6 sous Windows. Sinon, quel compilateur est disponible sur les 2 plate-formes ? Je crois qu'il y a gcc qui doit être utilisé dans DevC++, je me trompe ?

  8. #8
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 279
    Points : 11 015
    Points
    11 015
    Par défaut
    Il y a GCC effectivement, le compilo d'intel normalement, le comeau je crois bien. Et il me semble qu'il y en a encore un ou deux autres.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  9. #9
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Citation Envoyé par G3G3
    Tu es au courant que la licence est très gênante ?
    Nous avons une vraie licence de développement Windows, payée et tout et tout. Par contre, je ne sais pas si on a le droit de distribuer les applications réalisées avec les dll Qt pour faire fonctionner l'exécutable ? Si quelqu'un peut m'éclairer ce point ?
    Bien sur tu as le droit de le faire. Voir par exemple http://www.trolltech.com/products/qt/licensing.html
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  10. #10
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 752
    Points : 10 682
    Points
    10 682
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par G3G3
    Nous avons une vraie licence de développement Windows, payée et tout et tout. Par contre, je ne sais pas si on a le droit de distribuer les applications réalisées avec les dll Qt pour faire fonctionner l'exécutable ? Si quelqu'un peut m'éclairer ce point ?
    A priori si tu n'as pas une version d'eval de Qt il a été payé, ou cracké. S'il est payé, tu peux évidemment redistribuer la dll qt. Et à ce titre tu peux utiliser la classe QLibrary pour réaliser un système de plugin avec des dll (attention extension .so sous UNIX).

  11. #11
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    Le code doit au moins compiler avec VC6 sous Windows. Sinon, quel compilateur est disponible sur les 2 plate-formes ? Je crois qu'il y a gcc qui doit être utilisé dans DevC++, je me trompe ?
    GCC existe sous un un grand nombre d'architectures et de systèmes d'exploitation.
    De plus MS VC++ est plutôt permissif et prend pas mal de liberté avec le standard C++ qui te garantirait la portabilité.
    Donc je dirais qu'il vaut mieux coder avec GCC, puis tester si ça marche aussi avec MSVC++, à moins que tu souhaites absolument utiliser les fonctionnalités particulières de MSVC++.
    Boost ftw

  12. #12
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 279
    Points : 11 015
    Points
    11 015
    Par défaut
    Il y a des trucs propriétaires et uniques (en plus ou en moins) avec un compilo et l'autre. Dans tous les cas il faut faire attention.
    Il y a divers trucs (non critiques pour la plupart des développeurs) à base de templates qui ne sont pas supportés par VC 6 (< 7.1) et qui le sont avec GCC 3.4 et plus. GCC est également variablement permissif (VLAs, code qui est cassé avec la version 3.4, les flux qui se comportent différemment entre les 2.95 et 3.x, ...)

    Ce qui garantit la portabilité, c'est le sous ensemble commun entre les divers compilateurs.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  13. #13
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 752
    Points : 10 682
    Points
    10 682
    Billets dans le blog
    3
    Par défaut
    VC++ 6 est un vieux compilateur. Il faudrait penser à le remplacer.

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 81
    Points : 65
    Points
    65
    Par défaut
    VC++ 6 est un vieux compilateur. Il faudrait penser à le remplacer.
    Certes, il est vieux mais il reste certainement l'un des compilateurs C++ les plus utilisés sous Windows si ce n'est le plus utilisé.

    QLibrary pour réaliser un système de plugin avec des dll
    Merci pour l'info et merci à tous pour vos conseils.

  15. #15
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 752
    Points : 10 682
    Points
    10 682
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par G3G3
    VC++ 6 est un vieux compilateur. Il faudrait penser à le remplacer.
    Certes, il est vieux mais il reste certainement l'un des compilateurs C++ les plus utilisés sous Windows si ce n'est le plus utilisé.
    Depuis Visual C++ 7 (.Net 2002), VC++ 7.1 (.Net 2003) qui est gratuit en ligne de commande et VC++ 8 (VC++ 2005 Express Beta) ça reste à voir.

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 81
    Points : 65
    Points
    65
    Par défaut
    VC++ 8 (VC++ 2005 Express Beta)
    Je suis en train de le tester mais, même si il est gratuit, le changement d'outils ne se fait pas toujours aussi vite et simplement au niveau professionnel. Cependant il est clair que pour les développeurs amateurs, c'est une bonne chose que la version 8 soit gratuite.

  17. #17
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 752
    Points : 10 682
    Points
    10 682
    Billets dans le blog
    3
    Par défaut
    C'est une beta.
    La migration vers les autres versions de VC++ à partir de VC++ 6 se fait très bien. Par contre a mon avis tu ne devrait pas utiliser la beta en production.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Développer une application modulaire avec JTheque Core
    Par Baptiste Wicht dans le forum Utilities
    Réponses: 6
    Dernier message: 19/01/2010, 12h39
  2. [D7] Développer une application avec des paquets
    Par aityahia dans le forum Delphi
    Réponses: 3
    Dernier message: 17/04/2007, 10h38
  3. Réponses: 3
    Dernier message: 25/04/2006, 11h32
  4. [RCP] Devrais-je développer une application RCP ou un plugin ?
    Par arN34 dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 23/09/2004, 17h09

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