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 :

Une classe accessible par pluieurs programmes


Sujet :

C++

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 20
    Points : 11
    Points
    11
    Par défaut Une classe accessible par pluieurs programmes
    Bonjour,
    Je ne sais pas si cette question a déjà été posée (si oui, merci de me donner le lien), j'ai cherché et pas trouvé.

    Voici mon problème:

    J'ai un système composé de plusieurs programmes, (qui dit programmes dit fonction main). Je dois pouvoir lancer l'ensemble de ces programmes dans une seule machine, et mettre en place une classe, ou une structure de donnée qui serait accessible à l'ensemble des programmes.
    Cette classe, ou structure, devrait être créée, une fois pour toute, par le premier programme lancé, et être accessible à tous les autres qui viendront après.

    Est ce qu'il y aurait un moyen de faire ça en C++ ??

    Configuration: * langage C++
    * Plateforme Unix (AIX)

    Merci pour votre aide

  2. #2
    Membre éprouvé
    Avatar de Ange_blond
    Homme Profil pro
    Ingénieur développement en 3D temps réel
    Inscrit en
    Mars 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement en 3D temps réel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 902
    Points : 1 179
    Points
    1 179
    Par défaut
    a défaut de réponses plus documentées.. je dirais que tu as le choix entre :

    Base de donné, sockets, fichiers. je ne vois pas grand chose d'autre... mais la communication entre programmes... c'est pas ce qu'il y a de plus pratique selon moi. Si tu peux éviter, fait le.
    "le langage C permet de tout faire, y compris se tirer dans le pied. Le langage C++ permet de tout faire, y compris se tirer dans le pied - et réutiliser la balle"

  3. #3
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Effectivement, si la classe commune contient des données, il a plusieurs solutions: base de données, fichiers, memoire partagée ou architecture client/serveur.

    Si, en revanche, il s'agit juste de fonctionnalités et qu'il n'y a pas de données à partager, il suffit de mettre cette classe commune dans une lib (statique ou dynamique, ça dépend des besoins).
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 294
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 294
    Points : 1 543
    Points
    1 543
    Par défaut
    Salut,

    Tu peux aussi jeter un œil à Boost.Interprocess.

    MAT.

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Merci les gars pour vos réponses.
    Je vais essayer quelques une de vos solutions, et vous rendre compte.

    Juste une précision, la solution base de données est à écarter, car mon système doit accéder régulièrement à la ressource partagée. Un accès à la base de donnée le pénaliserait considérablement!!!

    A+

  6. #6
    Expert confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Points : 4 551
    Points
    4 551
    Par défaut
    Citation Envoyé par brad1024 Voir le message
    Merci les gars pour vos réponses.
    Je vais essayer quelques une de vos solutions, et vous rendre compte.

    Juste une précision, la solution base de données est à écarter, car mon système doit accéder régulièrement à la ressource partagée. Un accès à la base de donnée le pénaliserait considérablement!!!

    A+
    Pas forcément. Les bases de données sont optimisées pour les accès rapides et nombreux. Fort heureusement d'ailleurs. Elles intègrent en outre d'autres caractéristiques qui peuvent les rendre désirable (selon le moteur de base de données: gestion de la concurrence, atomicité des transactions, rollback, etc).

    Sinon, d'autres possibilité sont disponibles: il existe un protocole nommé RPC, pour Remote Procedure Call. Son but est de passer des messages entre applications, de manière à permettre à un programme d'appeler du code dans un autre programme. DCE/RPC propose une implémentation de référence de ce protocole, disponible sous licence LGPL sur la page dédiée de l'OpenGroup, ce qui a permis un portage vers Linux de la librairie.

    Pour un exemple d'utilisation, voir cet article du Linux Journal (c'est une bonne introduction avec un exemple de code).
    [FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
    Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
    Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

  7. #7
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Il y a aussi Corba (je ne connais pas, c'est juste que je sais que c'est une possibilité).
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  8. #8
    Expert confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Points : 4 551
    Points
    4 551
    Par défaut
    Citation Envoyé par r0d Voir le message
    Il y a aussi Corba (je ne connais pas, c'est juste que je sais que c'est une possibilité).
    Corba est très similaire à RPC. Les deux systèmes utilisent un langage de description d'interface pour spécifier les objets partagés, mais les implémentations de Corba sont souvent plus lourdes et plus difficile à mettre en oeuvre.
    [FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
    Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
    Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

Discussions similaires

  1. [WD17] Rendre une saisie accessible par TAB par programmation
    Par jimmypage dans le forum WinDev
    Réponses: 5
    Dernier message: 11/07/2013, 11h33
  2. Réponses: 4
    Dernier message: 01/02/2012, 22h08
  3. Ajouter une reference à Access par le code dans un programme VB ?
    Par Chekov dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 12/12/2007, 01h23
  4. Réponses: 3
    Dernier message: 24/10/2005, 11h07
  5. [ADO] [C#] [VB.NET] Compresser une BD Access par .NET
    Par olivierx dans le forum Accès aux données
    Réponses: 4
    Dernier message: 09/03/2004, 10h42

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