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 :

Programmation modulaire et API


Sujet :

C++

  1. #1
    Membre tr�s actif
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    148
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 148
    Par d�faut Programmation modulaire et API
    Bonjour a tous,

    Dans le cadre d'un projet (Cr�er un serveur HTTP sous forme d'API), je dois faire une conception en diff�rents modules. Je voudrais donc savoir comment cr�er un module en C++ que l'on peut charger et d�charger, exactement comme le fait le serveur APACHE (On charge les modules souhaites dans le fichier de config). Merci pour ceux qui savent.


  2. #2
    screetch
    Invit�(e)
    Par d�faut
    Quelle platforme?

    La mani�re souvent utilis�e est d'avoir une interface virtuelle pure pour chaque type de plugin
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    class IScriptModule
    {
      virtual void loadScript() = 0;
    };
    puis de cr�er une DLL/un SO contenant une impl�mentation de l'interface

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    class PhpModule : IScriptModule
    {
      virtual void loadScript() { executePhp(...); }
    };
    et dans cette DLL, avoir une fonction d'instanciation et une fonction de nettoyage:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    PhpModule* open() { return new PhpModule; }
    void close(PhpModule* m) { delete m; }
    Enfin, une sorte de "factory" pour les charger dans l'application:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    template< typename Interface >
    class Plugin
    {
    private:
      void* m_pluginHandle;
      Interface* m_plugin;
    public:
      Plugin(const char *pluginName)
      {
        m_pluginHandle = openDll(pluginName); // depend de la platforme
        openFunction = getMethod(m_pluginHandle, "open");
        m_plugin = openFunction();
      }
      ~Plugin()
      {
        closeFunction = getMethod(m_pluginHandle, "close");
        closeFunction(m_plugin);
        closeDll(m_pluginHandle);
      }
     
      Interface* operator->() { return m_plugin; }
    };
    enfin, le code client dans l'application:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    Plugin<IScriptModule> phpModule("php");
    phpModule->loadScript();

  3. #3
    Membre exp�riment�
    Homme Profil pro
    Analyse syst�me
    Inscrit en
    Novembre 2008
    Messages
    227
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Analyse syst�me
    Secteur : High Tech - �lectronique et micro-�lectronique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 227
    Par d�faut
    Si tu fouilles dans les tutoriels de la section C++, il y en a un sur la gestion des plugins, apr�s tu as aussi :
    Dynamic Class Loading for C++ on Linux

    Par contre il vaut mieux parfaitement maitriser le C++ et bien connaitre le C

  4. #4
    Membre tr�s actif
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    148
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 148
    Par d�faut
    Je vais voir �a, merci pour vos r�ponses !

Discussions similaires

  1. R�ponses: 29
    Dernier message: 14/01/2013, 10h40
  2. tutoriel : La programmation de l'API Windows en C++ par Bob
    Par Aurelien.Regat-Barrel dans le forum Windows
    R�ponses: 19
    Dernier message: 21/06/2008, 14h34
  3. programmation modulaire
    Par barbarello dans le forum C++
    R�ponses: 2
    Dernier message: 19/02/2006, 13h04
  4. [Projet] Programmation modulaire d'un projet.
    Par loverdose dans le forum Langages de programmation
    R�ponses: 1
    Dernier message: 18/11/2005, 21h59
  5. Tutorial d'initiation a la programmation avec l'API Windows
    Par mcdonald dans le forum Autres �diteurs
    R�ponses: 3
    Dernier message: 16/09/2005, 17h20

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