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 C++ Builder XE2 (update 4) [IDE]


Sujet :

C++Builder

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 164
    Points : 85
    Points
    85
    Par défaut Migration C++ Builder XE2 (update 4)
    Bonjour à tous,

    Voilà, je suis en train de migrer plusieurs applications C++ Builder 2006 vers le nouvel EDI d'Embarcadero (C++ Builder XE2).
    J'aurai besoin de votre aide, d'abord sur des retours d'expérience par exemple, mais surtout sur un souci que je rencontre sur un des projets dont je n'arrive pas à trouver la solution.

    J'ai un souci au niveau du lieur, j'ai le message suivant :
    "[ILINK32 Erreur] Fatal: Impossible d'ouvrir le fichier 'VCL.IMAGING.JCONSTS.OBJ'"

    Effectivement, dans ce projet, la bibliothèque "jpeg.hpp" est intégré, qui contient "#include <Vcl.Imaging.jpeg.hpp>".

    Sous Builder 2006, la librairie "vcljpg.lib" sous "C:\Program Files\Borland\BDS\4.0\lib\release" est ajouté au projet.

    Comment faire sur C++ Builder XE2 ? Je ne peux pas ajouté cette librairie, car pour les futurs postes de développeurs, C++ Builder 2006 ne sera pas installé.

    Merci beaucoup par avance pour votre aide,

  2. #2
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Seine Maritime (Haute Normandie)

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 401
    Points : 578
    Points
    578
    Par défaut
    Hello,

    Apparemment sous XE2, vcljpg n'existe plus et les choses liées au Jpeg sont intégrées directement dans vclimg.
    Donc déjà tu peux enlever la référence à vcljpg...

    Si tu regardes à l'intérieur du .cbproj, que contient la clé <AllPackageLibs> ? Est-ce que vclimg.lib est référencée ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 164
    Points : 85
    Points
    85
    Par défaut
    Merci pour les infos,

    Pour répondre à ta question :
    AllPackageLibs>vcl.lib;rtl.lib;xmlrtl.lib</AllPackageLibs>

    Effectivement, j'avais une référence sur vcljpg

    Merci !

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 164
    Points : 85
    Points
    85
    Par défaut
    Bon, l'erreur est revenue

    En fait, dans mon projet xxx.cbproj, je dois ajouter une librairie dynamique appelons la "yyy.lib", provenant de yyy.cbproj, qui lui a besoin de xxx.lib

    En fait, si je copie la librairie yyy.lib générée par C++ Builder 2006, j'ai le message d'erreur de lien "[ILINK32 Erreur] Fatal: Impossible d'ouvrir le fichier 'VCL.IMAGING.JCONSTS.OBJ'".

    Si je construis le projet yyy.cbproj en C++ Builder XE2, j'ai plusieurs erreurs de liens sur des méthodes de xxx.cbproj, mais le lib est généré.

    Du coup, le projet xxx.cproj compile et lie correctement sans faire aucun changement ? mais le xxx.lib doit être erroné car le projet yyy.cbproj me donne d'autres erreurs de liens ... dingue !

    Tout se construit correctement sous C++ Builder 2006

    Si vous avez des idées, je suis preneur.
    Merci par avance,

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Seine Maritime (Haute Normandie)

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 401
    Points : 578
    Points
    578
    Par défaut
    Citation Envoyé par Mercusyo Voir le message
    En fait, dans mon projet xxx.cbproj, je dois ajouter une librairie dynamique appelons la "yyy.lib", provenant de yyy.cbproj, qui lui a besoin de xxx.lib
    gggnnnh ?? Les 2 projets sont mutuellement dépendants ??
    Ce sont des dll ? des composants ?
    Y'a surement un moyen de casser une des deux dépendances, non ?

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 164
    Points : 85
    Points
    85
    Par défaut
    Ce sont 2 DLL qui s'appellent entre elles. Du coup, j'ai changé de fusil d'épaule ce matin, je travaille justement pour qu'il n'y ai plus d'inter dépendance de ces 2 DLL. Ca ne mangera pas de pain, je pense que cela peut que m'aider car forcément quand je construis une DLL, la bibliothèque "lib" de l'autre n'est pas à jour et vice-versa ...

    Merci pour ta réponse, je vous tiens au courant, allez zou, j'y retourne

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 164
    Points : 85
    Points
    85
    Par défaut
    Bon voilà, j'ai modifié les 2 projets générant des DLL.

    Il n'y a donc plus d'interdépendance maintenant, le premier projet se construit correctement et en visualisant la DLL générée sous "Dependency Walker", elle correspond bien à celle générée sous C++ Builder 2006.

    Par contre, j'ai supprimé une classe de mon premier projet que j'ai migré dans le second projet (ce qui expliquait l'interdépendance), cette classe gère la lecture/écriture de fichiers XML.

    Du coup, dans le second projet yyy.cbproj, j'ai le message de lieur suivant :
    "[ILINK32 Erreur] Error: '__fastcall Xml::Xmldoc::LoadXMLDocument(const System::UnicodeString)' externe non résolu, référencé depuis zzzzzz.OBJ"

    Une idée svp ?

    Merci par avance,

  8. #8
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Seine Maritime (Haute Normandie)

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 401
    Points : 578
    Points
    578
    Par défaut
    Est-ce que xmlrtl.lib est dans la section <AllPackageLibs> de yyy.cbproj ??

    Tu as laissé Builder migrer pour toi tes différents projets ?

    Pour ma part, lors d'une migration de projet, je préfère repartir d'un projet vide, et rajouter les sources au fur et à mesure...

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 164
    Points : 85
    Points
    85
    Par défaut
    Exact merci beaucoup !

    Effectivement, en éditant les différents cbproj, j'ai supprimé la référence sur la librairie "xmlrtl.lib" de l'un et rajouté dans l'autre manuellement, et cela fonctionne correctement.

    Sinon, j'ai migré en laissant Builder XE2 faire, mais vu les soucis pour l'instant, je pense que pour les prochains projets, je partirai de zéro et rajouterai à la main le code source, j'avais voulu "gagner du temps", mais en fait non ...

    Par contre, j'ai du modifier les déclarations des classes à exporter :
    - Avant sous Builder 2006 : __declspec(export) class MaClasse
    - MAintenant sous Builder XE2 : class __declspec(export) MaClasse
    , sinon les classes n'étaient pas exportées d'où d'innombrables erreurs de lieur.

    Voila, si cela peut aider !

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

Discussions similaires

  1. C++Builder XE2 plein de promesses mais
    Par phpdev dans le forum EDI
    Réponses: 13
    Dernier message: 09/03/2012, 19h10
  2. BCB 6 -> Builder XE2
    Par free07 dans le forum C++Builder
    Réponses: 7
    Dernier message: 27/10/2011, 07h42
  3. Migration C++ Builder 2010 à VS C++ 2010
    Par Sixpounder dans le forum Visual Studio
    Réponses: 1
    Dernier message: 02/09/2011, 00h38
  4. Migration C++Builder -> EDI libre multi-plateforme
    Par jibe74 dans le forum Choisir un environnement de développement
    Réponses: 1
    Dernier message: 25/10/2006, 11h11

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