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++Builder Discussion :

Migration Builder 6 -> XE4 : vector


Sujet :

C++Builder

  1. #1
    Membre chevronné
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 930
    Points : 1 959
    Points
    1 959
    Par défaut Migration Builder 6 -> XE4 : vector
    bonjour,

    Ca fait bien longtemps que je n'ai pas fait de C++ et je me suis lancé dans la migration d'un programme que j'ai écris avec C++ Builder 6.

    Bon, je convertis les AnsiString en String et les char en Widechar ( si besoin ), pour l'instant pas trop de problèmes mais je bute sur ce qui suit avec les vector :

    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
     
     
    struct  ty_ModePaiement
    {
    ...
    };
     
    ...
     
      std::vector <ty_ModePaiement> pVP_ListePaiement; // liste des modes de paiement
     
    ... 
     ty_ModePaiement *l_pListeModeReg = 0;
      std::vector <ty_ModePaiement>::iterator l_pIterModeReg = pVP_ListePaiement.begin();
     
      while( l_pIterModeReg < pVP_ListePaiement.end() )
      {
        // Ca plante en compil sur ce qui suit : il indique qu'il ne peut pas convertir l'iterator en ty_ModePaiement *
        l_pListeModeReg =  l_pIterModeReg;
        ...
      };
    J'ai pas le droit d'affecter l'iterator à un pointeur ? l'iterator n'est donc pas considéré comme un pointeur ?

  2. #2
    Membre chevronné
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 930
    Points : 1 959
    Points
    1 959
    Par défaut
    Bonjour,

    Personne ne voit ou est mon erreur ? J'ai trouvé une solution qui ne me plait pas vraiment, cela n'utilise pas l'iterator :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    int l_iCpt = 0;
     
    while( l_iCpt < pVP_ListePaiement.size() )
      {
     
        l_pListeModeReg =  pVP_ListePaiement[l_iCpt++];
        ...
      };
    J'aimerais quant même bien connaitre la solution à mon problème.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur multiplateformes
    Inscrit en
    Mars 2003
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur multiplateformes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 273
    Points : 628
    Points
    628
    Par défaut
    Bonjour,

    L'iterateur l_pIterModeReg pointe vers un pointeur de type ty_ModePaiement.
    Il faut écrire dans la boucle :
    l_pListeModeReg = * l_pIterModeReg;

  4. #4
    Membre chevronné
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 930
    Points : 1 959
    Points
    1 959
    Par défaut
    Citation Envoyé par yvslms Voir le message
    Bonjour,

    L'iterateur l_pIterModeReg pointe vers un pointeur de type ty_ModePaiement.
    Il faut écrire dans la boucle :
    l_pListeModeReg = * l_pIterModeReg;
    Bonjour et merci pour ton aide mais l'iterateur n'est pas un pointeur de pointeurs, cf les déclarations :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     std::vector <ty_ModePaiement> pVP_ListePaiement; 
    std::vector <ty_ModePaiement>::iterator l_pIterModeReg = pVP_ListePaiement.begin();
    J'ai quant même essayé ce que tu dis mais le compilo indique l'erreur : impossible de convertir <ty_ModePaiement> & en <ty_ModePaiement> *

    Ce qui ne m'étonne pas car l'iterateur est bien un pointeur sur une liste de structure ty_ModePaiement

Discussions similaires

  1. Erreur lieur / Migration Builder C++ 2007 --> XE7
    Par LescureImage dans le forum C++Builder
    Réponses: 8
    Dernier message: 20/06/2015, 17h01
  2. Migration d'un programme XE4 vers XE7 (ou XE8) boires et déboires
    Par SergioMaster dans le forum Composants FMX
    Réponses: 1
    Dernier message: 22/04/2015, 11h21
  3. [Base de donnée] BlackFish SQL / Migration Builder C++ 2007 --> XE7
    Par LescureImage dans le forum C++Builder
    Réponses: 0
    Dernier message: 14/04/2015, 09h43
  4. Migration Builder 5 Builder 2006 : fichiers rc
    Par eag35 dans le forum C++Builder
    Réponses: 2
    Dernier message: 29/05/2006, 08h08
  5. Compatitbilité vector<> Builder / Visual
    Par Slucky dans le forum C++Builder
    Réponses: 2
    Dernier message: 22/11/2005, 16h41

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