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

Qt Discussion :

Migration d'un projet Borland Builder 5 C++ vers Qt ou VS


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club

    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2013
    Messages : 6
    Par défaut Migration d'un projet Borland Builder 5 C++ vers Qt ou VS
    Bonjour !

    Je souhaiterais faire migrer un projet développé sous borland Builder 5 C++ vers un autre IDE (Qt ou VS), aussi avoir vos avis sur la faisabilité ainsi que les différentes phases que vous pourriez me conseiller
    j'ai commencé à me focaliser sur la conversion de borland c++ à Qt, dans un premier temps la VCL --> Ui(Qt), déjà essayé un outil DFM2QT, mais convertit 1/4 de l'ensemble des fichiers Dfm en fichiers Ui--QT.
    Je viens à vous pour me proposer des outils existants, aussi vos opinions, idées, expériences ...

    Merci d'avance !!

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    je ne savais pas qu'il existait des convertisseurs.

    Je vous résume mon expérience personnelle et mes conclusions qui ne prétendent pas être transposables. Le parcours de chacun dans ce genre de situation, l'expérience sont en effet déterminants. J'ai regardé un peu la chose et rapidement abandonné (le portage mais pas l'utilisation de Qt ). Mon cheminement était le suivant Delphi/Lazarus -> C++ Builder -> Qt
    La partie la plus facile fut la transposition Delphi/C++ Builder. Mêmes objets, même VCL, mêmes événements et même ordonnancement (du traitement des) méthodes.

    "Malheureusement" Qt demande un raisonnement (et une conception des projets) de type asynchrone. C'est très bien expliqué dans le bouquin de Tristan Israël "Maîtrisez Qt5". Pour un Pascalien comme moi, cela a été une véritable prise de tête et parfois l'est encore. J'écris "malheureusement" dans la situation où je me trouvais... parce que désormais l'approche Qt me semble présenter de nombreux avantages au point que j'ai beaucoup de mal à m'en passer, qu'on m'entend souvent pester sur ce sujet à l'encontre de mon Delphi.... auquel je me refuse à renoncer tant qu'il continue à évoluer et permet de faire aussi bien (sous Windows ) même si c'est souvent au détriment de la facilité de développement et que cela devient vraiment fastidieux. J'utilise actuellement les 2 environnements avec au final, un degré de satisfaction équivalent, même si ces satisfactions (et insatisfactions) ne sont pas identiques d'un environnement de développement à l'autre.

    Donc pour en revenir à notre sujet, l'approche est très différente et je considère avec le recul que d'être passé par C++ Builder pour aborder Qt a été une erreur de ma part. Je pense même que d'aborder le C++ avec C++ Builder en est une autre. C++ Builder, c'est un portage de Delphi en "C++" et évidemment ce dernier ne renie pas son ascendance. Pour rester "compatible", il a oublié un peu d'évoluer, plus exactement, a manqué de la liberté d'évoluer. Bref, que ce soit l'IDE (Qt Creator), les paramétrages de QMake, l'utilisation naturelle de la méthode asynchrone qui a fluidifié immédiatement mes programmes (un gros soucis sous Delphi/Lazarus qui réclame la programmation de nombreux threads pour résoudre le problème), l'utilisation des objets notamment graphiques de Qt, la (non-)gestion des exceptions (enfin pas telle qu'elle existe sous Delphi/C++ Builder), à mon avis, une large part des programmes est à réécrire aussi bien pour pour ne pas être déçu par le résultat, que pour... ne pas perdre de temps... si telle est votre volonté de basculer de l'environnement Embarcadero vers celui de Qt. Ceci dit, je me demandais pourquoi vous désirez réaliser cette migration ? Passage obligé vers Linux ? Vers Os X ?
    Dernière modification par Invité ; 15/02/2015 à 12h25.

  3. #3
    Nouveau membre du Club

    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2013
    Messages : 6
    Par défaut
    Salut !

    Je suis vraiment désolé de n'avoir pas pu vous répondre rapidement pour la simple raison que je croyais que j'aurais une notification de votre réponse par e-mail de façon automatique, hélas non
    bon revenons à notre sujet, pour la raison du souhait de la migration, c'est que l’éditeur Borland C++ devient vieux, malgré qu'il marche bien, nous souhaitons faire migrer l'application vers un éditeur récent, toujours sous Windows.

    Nous voulons à tout pris éviter de repartir à zéro, création des interfaces graphiques, fichiers sources, dlls, ..., et minimiser le plus possible les modifications à la main, il y'en aura beaucoup sans aucun doute, bref si ça peut nous gagner du temps car la taille de l'application de l'entreprise est grande (DLLs, Libs, c++/h fichiers, ...)

    merci encore !

  4. #4
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 768
    Par défaut
    Actuellement je travaille avec Embarcadero xe (et le xe6 chez moi) en C++ pour une application IHM sous Windows (avec VCL)

    Et en 3 mois, moi aussi je voudrais faire virer C++ Builder parce que 1) Il n'y a pas de logs à part OputDebugString 2) Il n'y a pas de gestion de mémoire (utilisation, fuite mémoires, ...) gratuite et en C++ 3) Je commence en avoir marre de toutes les exceptions jetées par la VCL (mais cela c'est plus le code m*rdik que je dois maintenir )

    La migration vers Qt (voire une autre bibliothèque) sans réécrire du code me semble impossible (*) .
    Les raisons:
    • VCL est une grosse surcouche de la bibliothèque win32, avec des tables de messages, des images BMP RGB, ... Qt c'est de l'objet partout même les événements avec le moc
    • VCL est une grosse surcouche de la bibliothèque win32. Qt c'est plus une approche avec des layouts partout (et en plus Qt te force à mettre des layouts partout jusqu'à en ). Rien que cela, c'est 100% de tes fenêtres à refaire.
    • VCL c'est plus une classe par fenêtre dans laquelle on code tout notre bazar. Peut-être que tu as fais un peu de conception (des singletons, des managers, ...) mais C++ Builder tend plus vers du C++ dit "C with classes". Qt c'est de l'objet partout
    • J'ai du mal avec la notion d'ui de Qt (équivalent des fichiers DFM pour C++ Builder), parce que ta fenêtre c'est une classe ui qui est soit héritée soit mise en attribut (agrégation/ composition). Donc par rapport au code C++ Builder et si tu adoptes cette notion d'ui de Qt, il faudra découper en 2 toutes tes classes
    • VCL c'est du Delphi. Va adapter du Delphi en C++/ moc


    * -> Impossible à moins que tu aies isolé/ cloisonné/ séquestré (<- ) le code C++ Builder et que toutes les classes C++ Builder ne contiennent que les éléments graphiques (boutons, labels, zones d'éditiion, ...) et que tu les utilises via l'héritage.
    En gros ton code C++ Builder est pris en sandwich entre le code "bas niveau" (style des singletons, des managers, ...) et le code "'IHM" avec la logique métier/ IHM

  5. #5
    Nouveau membre du Club

    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2013
    Messages : 6
    Par défaut
    Merci Foetus de m'avoir répondu !

    Pour ce qui est de la conversion des dfm en ui, ça s'est plutôt bien passé , il faudrait juste apporter quelques modifications à l'outil,
    J'ai aussi réussi à générer le fichier .h correspondant grâce à l'outil uic de Qt, après question signaux/slots ça va se compliquer puisque borland C++ utilise les events
    je voudrais savoir si embarcadaero sur lequel tu travaille prend en charge la bibliothèque VCL ?
    si oui, serait ce plus facile de migrer un projet sous borland c++ 5 builder vers son successeur

    j'ai aussi lu que des bibliothèques VCL payantes déstinées à être intégrées dans microsoft visual c++ comme JVCL, TMC softwares

    Encore merci

  6. #6
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 768
    Par défaut
    J'ai oublié aussi la relique du passé et qui pollue ton code C++ Builder : les __fastcall

    Citation Envoyé par fouad122 Voir le message
    je voudrais savoir si embarcadaero sur lequel tu travaille prend en charge la bibliothèque VCL ?
    La bibliothèque VCL est livrée avec Embarcadero xe et xe6

    Après est-ce que la bibliothèque VCL est gratuite? Elle est livrée avec un logiciel payant


    Citation Envoyé par fouad122 Voir le message
    si oui, serait ce plus facile de migrer un projet sous borland c++ 5 builder vers son successeur
    Je ne connais pas cette antiquité


    Citation Envoyé par fouad122 Voir le message
    JVCL
    Il me semble que tu confonds . Avec Embarcadero sont livrées au moins les 2 bibliothèques VCL et FireMonkey

    Mais il y a une énorme bibliothèque qui s'appelle la Jedi (<- lien ) et qui est composée de 2 bibliothèques: JVCL et JCL

Discussions similaires

  1. [IDE] Migration d'un projet vers C++ Builder XE6
    Par Irisael dans le forum C++Builder
    Réponses: 1
    Dernier message: 01/09/2014, 15h17
  2. structurer son projet borland c++ builder
    Par petitours dans le forum C++Builder
    Réponses: 6
    Dernier message: 06/09/2008, 11h08
  3. Projet Borland c++ 5 sous Builder 6
    Par Ben77 dans le forum Autres éditeurs
    Réponses: 0
    Dernier message: 22/10/2007, 19h56
  4. conversion de projet Borland C++ builder en Visual C++ ou
    Par kurul1 dans le forum C++Builder
    Réponses: 2
    Dernier message: 12/09/2005, 08h30
  5. Réponses: 3
    Dernier message: 16/08/2005, 07h56

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