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 :

Portabilité en c++


Sujet :

C++

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 634
    Points : 407
    Points
    407
    Par défaut Portabilité en c++
    Bonjour a tous,
    je suis actuellement en train de réaliser un lib multi-plateforme, j'ai pour le moment code les classe String, Vector, Map, Socket TCP/UDP, SMTP, THread Mutex etc.. et je désirerai commencer les gui, mais je ne sais pas trop par ou commencer pour que ça soit portable sur les plateforme Unix (notamment mac et linux) et windows.
    Auriez-vous un tuto ou un livre a me proposer ?

    Merci d'avance

    Cordialement,
    NeoKript

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Points : 1 174
    Points
    1 174
    Par défaut
    Citation Envoyé par NeoKript Voir le message
    Bonjour a tous,
    je suis actuellement en train de réaliser un lib multi-plateforme, j'ai pour le moment code les classe String, Vector, Map,
    ok mais pourquoi recoder ce qu'il y a en standard?

    Socket TCP/UDP, SMTP, THread Mutex etc.. et je désirerai commencer les gui, mais je ne sais pas trop par ou commencer pour que ça soit portable sur les plateforme Unix (notamment mac et linux) et windows.
    Auriez-vous un tuto ou un livre a me proposer ?
    utiliser la lib standard et boost ?

    ben sinon sur google, des tutos sur les sockets Unix et Windows, c'est vraiment pas ce qu'il manque.

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2005
    Messages : 147
    Points : 165
    Points
    165
    Par défaut
    Je ne comprends pas non plus pourquoi tu recodes ce genre de chose, alors que c'est déjà dans la librairie standard, qui heureusement est portable.
    Pour les Socket et les GUI, c'est vrai qu'il n'y a rien de standard, mais ça a déjà été fait de nombreuses fois.

    Dis nous exactement ce que tu veux faire, et on te dira (peut être) comment y arriver

    A+
    Avec les ordinateurs, 99% des bugs proviennent de l'interface chaise-clavier...

    Comment ça 1Km n'est pas égal à 1024m ???

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 634
    Points : 407
    Points
    407
    Par défaut
    Bonsoir et merci pour vos reponses,

    J'ai déjà code l'api portable pour les socket, ma réelle question est comment faire des gui portable sans utiliser de bibliothèque (genre Qt, MFC, xWidget etc ...).

    Je vous remercie,
    Cordialement,
    NeoKript

  5. #5
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Points : 4 732
    Points
    4 732
    Par défaut
    Bah tu ré-écris le code plusieurs fois avec à chaque fois la lib particulière de la plateforme.
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  6. #6
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Citation Envoyé par NeoKript Voir le message
    Bonsoir et merci pour vos reponses,

    J'ai déjà code l'api portable pour les socket, ma réelle question est comment faire des gui portable sans utiliser de bibliothèque (genre Qt, MFC, xWidget etc ...).

    Je vous remercie,
    Cordialement,
    NeoKript
    Sachant que Qt et wxWidgets sont déjà ce que tu cherches à réécrire ?

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 634
    Points : 407
    Points
    407
    Par défaut
    Oui c'est a peu près ca dans l'idée.

    Pour information,
    j'ai recodée les vector car ceux de la std segfault très souvent et ne permettent pas de faire des choses très poussées.

    Pour Davidbrcz, je veux bien pour Windows il y a Win32 pour les gui, mais sous UNIX je ne connais pas de lib qui permettent la création de gui !

  8. #8
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Citation Envoyé par NeoKript Voir le message
    j'ai recodée les vector car ceux de la std segfault très souvent et ne permettent pas de faire des choses très poussées.
    Heu tu es sûr que c'est pas ton code qui est buggé ? Parce que que pour les autres (ceux de la std), s'ils avaient des problèmes, cela se saurait.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  9. #9
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Citation Envoyé par NeoKript Voir le message
    Pour information,
    j'ai recodée les vector car ceux de la std segfault très souvent et ne permettent pas de faire des choses très poussées.
    Pas normal, je ne connais aucune implémentation de la STL moderne qui a ce genre de problème

  10. #10
    Membre éclairé Avatar de metagoto
    Profil pro
    Hobbyist programmateur
    Inscrit en
    Juin 2009
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Hobbyist programmateur

    Informations forums :
    Inscription : Juin 2009
    Messages : 646
    Points : 845
    Points
    845
    Par défaut
    Citation Envoyé par NeoKript Voir le message
    Pour Davidbrcz, je veux bien pour Windows il y a Win32 pour les gui, mais sous UNIX je ne connais pas de lib qui permettent la création de gui !
    Il y en a un sacré paquet. Une liste ici http://en.wikipedia.org/wiki/List_of_widget_toolkits

  11. #11
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 634
    Points : 407
    Points
    407
    Par défaut
    Citation Envoyé par Matthieu Brucher Voir le message
    Pas normal, je ne connais aucune implémentation de la STL moderne qui a ce genre de problème
    Pour les avoir utiliser souvent, fait un for avec de temps a autre des erase ==> HEAP CORRUPTED

    Pour metagoto, merci bien c'est pile ce que je cherchais ! Merci

  12. #12
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Citation Envoyé par NeoKript Voir le message
    Pour les avoir utiliser souvent, fait un for avec de temps a autre des erase ==> HEAP CORRUPTED
    C'est donc que tu utilisais mal la STL (heap corrupted, ça ressemble à un dépassement de tableau, et ça, c'est une erreur de ton côté).

  13. #13
    Membre éclairé Avatar de metagoto
    Profil pro
    Hobbyist programmateur
    Inscrit en
    Juin 2009
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Hobbyist programmateur

    Informations forums :
    Inscription : Juin 2009
    Messages : 646
    Points : 845
    Points
    845
    Par défaut
    Citation Envoyé par NeoKript Voir le message
    Pour les avoir utiliser souvent, fait un for avec de temps a autre des erase ==> HEAP CORRUPTED
    Une manifestation du y2k bug probablement
    As tu regardé cette FAQ ?
    http://cpp.developpez.com/faq/cpp/?p...ssion_elements

  14. #14
    Membre actif Avatar de Twindruff
    Inscrit en
    Janvier 2005
    Messages
    216
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 216
    Points : 237
    Points
    237
    Par défaut
    Ouais faut faire attention à l'invalidation des itérateurs quand on supprime des éléments dans des structures chainées aussi.
    Ça serait un peu triste si la stl était pas capable de supprimer un élément dans un conteneur, faut se remettre en question quelquesfois.

  15. #15
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 634
    Points : 407
    Points
    407
    Par défaut
    Je n'ai pas dit que c'etait une erreur de la STL, je me doutais bien que l'erreru venais de moi mais bon avec mes vecteur je peut faire un for avec directement un erase sans "bidoullage" c'est pas plus mal niveau utilisation.

    Merci pour vos réponses

  16. #16
    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 NeoKript Voir le message
    Je n'ai pas dit que c'etait une erreur de la STL, je me doutais bien que l'erreru venais de moi mais bon avec mes vecteur je peut faire un for avec directement un erase sans "bidoullage" c'est pas plus mal niveau utilisation.
    L'avantage de la bonne manière d'effacer N éléments d'un vecteur STL est qu'elle est performante. Entre autre, elle ne déplace qu'une fois chaque élément restant au maximum. Je ne pense pas que ta version d'erase dans un for ait cette propriété.

    L'inconvénient est que la façon de l'écrire est tordue (vivement les lambdas pour simplifier ça). Je te conseille de lire l'article de la FAQ qui t'a déjà été proposé.
    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.

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

Discussions similaires

  1. Portabilité du code C++ de Windows -> Linux ?
    Par eraser570 dans le forum Linux
    Réponses: 29
    Dernier message: 04/09/2009, 17h02
  2. Environnement graphique et portabilité
    Par viddak dans le forum Linux
    Réponses: 3
    Dernier message: 11/06/2003, 13h57
  3. portabilité d'une interface
    Par marou dans le forum JBuilder
    Réponses: 4
    Dernier message: 21/03/2003, 08h53
  4. Réponses: 11
    Dernier message: 17/03/2003, 10h56
  5. portabilité et BDD
    Par delire8 dans le forum C++Builder
    Réponses: 7
    Dernier message: 04/07/2002, 10h59

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