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

MFC Discussion :

Vos expériences sur la migration de VC++6 vers VC++.NET


Sujet :

MFC

  1. #1
    Expert confirm�
    Avatar de neo.51
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    2 663
    D�tails du profil
    Informations personnelles :
    �ge : 42
    Localisation : France, Pyr�n�es Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 663
    Par d�faut Vos expériences sur la migration de VC++6 vers VC++.NET
    Bonjours,

    Je souhaiterais r�aliser une FAQ sur la migration de Vc++6 vers VC++.NET.

    Apparement la migration est assez facile, mais il y a toujours quelques petits soucis, des petits bouts de code � re�crire. Je souhaiterais savoir quels probl�mes vous avez rencontr� et comment vous les avez solutionn�s.

    Vos t�moignage seron repris dans la FAQ, avec votre nom d'utilisateur comme signature et un lien vers votre profil.


    Merci d'avance pour votre participation

  2. #2
    Membre �clair�
    Inscrit en
    Avril 2002
    Messages
    61
    D�tails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 61
    Par d�faut
    J'ai eu des probl�mes avec les objets de type CString qui sont
    remplac�s par des templates dans la version DOTNET des MFC.

  3. #3
    Membre averti
    Inscrit en
    Mai 2002
    Messages
    26
    D�tails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 26
    Par d�faut
    J'avais fait un programme en Visual C++ normal. Puis je suis pass� � .net . Rien ne marchait � cause de probl�mes de pr�compilation. J'ai cherch� pendant 1 heure comment on enlevait les pr�compilations, mais impossible de trouver.

    Finalement de rage, j'ai d�sinstaller .net parce que je trouvais qu'il m'�tait inutile d'avoir un seul programme trop compliqu� et illisible (pour pouvoir tout rassembler en un) alors que plusieurs programmes sp�cialis�s me suffisait.

    Bien entendu, c'est ma propre opinion qui n'engage que moi, �tant un programmeur d�butant et qui n'a pas de projet sp�cifique autre que de programmer en amateur pour le plaisir. Cela signifiant qu'il me suffit d'avoir un programme simple qui donne rapidement des r�sultats, et non quelque chose de performant et portable ...

  4. #4
    Membre confirm�
    Inscrit en
    Septembre 2003
    Messages
    49
    D�tails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 49
    Par d�faut
    Salut
    Pour ma part tous c bien passe. Encore mieux: J'avais certains pb avec dynamic_cast qui ne repondait pas correctement; pas de ca dans .net
    La surchage du type de retour des methodes vitual est enfin pris en compte (1 bonheur).

    Mais je tiens a signal� que je n'utilse pas MFC no STL (j'ai ma biblio).

    a+

  5. #5
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    salut ,voila mon experience du portage
    j'ai port� un librairie (perso) d'outils de plusieurs 10 milliers de ligne sans trop de pb ,pour recompiler linker des prog .
    liste de mes pb les plus marquants:
    pb avec les CString sur l'acces � certaines variables internes (je sais c'est mal).
    pb avec les CFile :
    exemple avec resolution compatible avec VC6.0
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    BOOL CDIBPal::Save(CFile* fp)
    {
    #if _MFC_VER >= 0x0700
        return Save((UINT)fp->m_hFile);
    #else
        return Save(fp->m_hFile);
    #endif
    }
    plus des differences de signatures :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    #if _MFC_VER >= 0x0700
     virtual ULONGLONG GetPosition() const;
    #else
      virtual DWORD GetPosition() const;
    #endif
    suffit de regarder les defs des classes

    certaines structures sont differentes, exemple:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    #if _MFC_VER >= 0x0700
    struct CCharFormat : public CHARFORMAT2
    #else
    struct CCharFormat : public CHARFORMAT
    #endif
    pd d'acces � des includes :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    #if _MFC_VER < 0x0700
    #include <..\src\afximpl.h>
    #else
    #include <..\src\mfc\afximpl.h>
    #endif
    un classique:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    #if _MFC_VER < 0x0700
    #include <fstream.h>
    #else
    #include <fstream>
    #endif
    mais le plus gros pb n'est pas la � mon avis ,j'ai ecris plusieurs OCX pour compenser la grisaille des ctrl statics edit et button de l'IDE pour le portage pas de pb a part quelque <> de signatures ex:

    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
    #if _MFC_VER >= 0x0700
    LRESULT CMyButton::OnDrawItem(WPARAM wParam, LPARAM lParam)
    {
    	int nIDCtl=wParam;
    	LPDRAWITEMSTRUCT lpDrawItemStruct=(LPDRAWITEMSTRUCT)lParam;
    #else
    void CMyButton::OnDrawItem(int nIDCtl,LPDRAWITEMSTRUCT lpDrawItemStruct) 
    {
    #endif
     
     
    #if _MFC_VER >= 0x0700
    return 0L;
    #endif
    }
    dans le .h : section Afx
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    #if _MFC_VER >= 0x0700
    LRESULT OnDrawItem(WPARAM wParam, LPARAM lParam);
    #else
    afx_msg void OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct);
    #endif
    jusque la tout va bien ,ca tourne perfect sous XP / 2000 j'ai m�me trouv� des bugs recalcitrants sous VC6.0
    mais les prgs de gestion fait avec VC7.0 sous 98/95/ME et NT.40
    c'est pas le top , la couche OLE est trop <> les OCX ne s'enregistre pas .
    j'ai donc laisser mes OCX en vc6.0 ,
    voila pour l'essentiel.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    18
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 18
    Par d�faut
    Salut tous le monde,
    pour ma part, je n'est pas eu trop de problemes, car je n'est travaill� sous VC++6.0 que pendant 2 mois, puis je suis pass� � VC++.Net, donc, pas de probleme notable, ya juste un truc que j'appr�cie grandement avec .Net, c'est l'acc�s � l'arbor�scence du .Net (avec le nom d'espace System). Donc, c'est beaucoup plus facile de g�rer les Sockets, les Threads ...

    Voila, donc, je n'est pas eu trop de probl�me

  7. #7
    Expert confirm�

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par d�faut
    En C++ standard le plus gros probleme c'est <iostream.h> qui disparra�t avec VC++ 2003. Il faut passer � <iostream>.
    http://c.developpez.com/faq/cpp/?pag...le#SL_iostream

  8. #8
    Membre averti
    Inscrit en
    Janvier 2005
    Messages
    37
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 37
    Par d�faut
    J'avais �galement eu un probl�me avec les include "iostream", mais globalement, tous les autres programmes fonctionnaient plut�t bien

  9. #9
    Membre confirm� Avatar de CriPpLe
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    157
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 157
    Par d�faut
    Je viens juste d'avoir visual studio .net pro!!!
    J'ai � peine regard�, l'IDE � l'air carrement g�nial, mais bon j'aurai besoin d'un temps pour m'y adapter

    Je vous dirai mon avis quand j'aurai touch� � tout �a de plus pr�s

  10. #10
    Membre �clair�
    Profil pro
    Inscrit en
    F�vrier 2004
    Messages
    582
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2004
    Messages : 582
    Par d�faut La panique totale
    Je viens juste de passer de C++ 6 � .Net.... et c'est l'horreur !!!
    Il me met des erreurs de partout , surtout dans les templates... et � priori, je vois pas le probl�me...
    Encore des jours � s'arracher les cheveux en perspective!!!!

  11. #11
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut Re: La panique totale
    Citation Envoy� par charliejo
    Je viens juste de passer de C++ 6 � .Net.... et c'est l'horreur !!!
    Il me met des erreurs de partout , surtout dans les templates... et � priori, je vois pas le probl�me...
    Encore des jours � s'arracher les cheveux en perspective!!!!
    c'est sur que le passage de vc6 a .net pour les STL c'est la cata

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    21
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 21
    Par d�faut
    Ce qui est clair c'est que .net simplifie largement l'utilisation des MFC!

    Pour le Pb de Cyrik la solution se trouvait dans-->Projet---->propri�t�s--->C/C++---->en t�te pr�compil�-->et choisir de ne pas utilis� d'ent�te pr�compil�!

    Pour ce qui est de la migration j'ai pas une de gros probl�me, y a toujours les STL qui ont coinc� au d�but et deux trois active X pas trop compatible (changement de nom de methode...)

    mais sinon je trouve que .net reste un bonne outils pas si compliqu� que �a!

  13. #13
    Membre �clair�
    Inscrit en
    Juin 2003
    Messages
    270
    D�tails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 270
    Par d�faut
    L'int�gration en .NET de librairies externes est tr�s fastidieuse (voir le tutoriel de Morpheus). Comme j'ai besoin de DLLs qui ont �t� d�velopp�es avec les MFC, j'ai laisser tomb� la migration vers .NET. Il faudra d'abord attendre que l'�diteur du SDK sur lequel je d�veloppe migre ses biblioth�ques en .NET.

  14. #14
    Membre confirm�
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    50
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2003
    Messages : 50
    Par d�faut Framework .Net accessible ou non ?
    Salut,

    Je suis juste en train de passer � .net dans un contexte de dvlp d'un logiciel professionnel (environ depuis 2 jours...).

    Une partie du logiciel est en VB .net, l'interface utilisateur, le client en fait.
    Une autre partie est en VC++ .net, le serveur.
    Une chose n'est pas claire pour moi : le framework .net est il accessible en Visual C++ ? J'ai bien retrouv� les MFC, mais je trouve dommage d'utiliser le framework pour la partie VB et de ne pas l'utiliser en Visual C++ d'autant plus si cela risque d'�tre abandonn� dans un futur proche. Si le framework .net est accessible, comment fait on pour y avoir acc�s ?

    Autre chose, malgr� mes recherches dans une librairie sp�cialis�e, il ne semble pas y avoir de livre sur le developpement en Visual C++ .net, est ce normal ? pour quelle raison ? ou ai je mal regard� ?

  15. #15
    Membre confirm�
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    90
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 90
    Par d�faut
    Bonjour,

    Je viens de passer � la version .NET, et j'ai rencontr� un probl�me d'include :
    Le compilo m'a renvoy� cette erreur :
    fatal error C1083: Impossible d'ouvrir le fichier include : 'fstream.h' : No such file or directory
    Voil� la solution :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    #include <fstream>
    using namespace std;
    Bonne continuation � tous !

  16. #16
    Membre �clair�
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Par d�faut
    Les typedef avec valeur par d�faut ne marchent pas avec 2005 :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    typedef CTBase* (*LPFN_LOADCTBASEEX)(const char *fn, const char *name, bool bDftBase=false);
    Il faut le modifier en faisant une d�riv de compil (ou modifier le code tout simplement pour 2005) :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    #ifdef USE_ST2005
    typedef CTBase* (*LPFN_LOADCTBASEEX)(const char *fn, const char *name, bool bDftBase);
    #else 
    typedef CTBase* (*LPFN_LOADCTBASEEX)(const char *fn, const char *name, bool bDftBase=false);
    #endif

  17. #17
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    merci pour cette information

  18. #18
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    bonjour,
    Pour concr�tiser ce post, j’ai �cris un tuto pour le portage d’une application VC6 vers Visual 2005.
    J’y relate les principaux probl�mes que j’ai rencontr�..

    http://farscape.developpez.com/tutor...on-vc6-vc2005/


  19. #19
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    6
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 6
    Par d�faut
    jusque la tout va bien ,ca tourne perfect sous XP / 2000 j'ai m�me trouv� des bugs recalcitrants sous VC6.0
    mais les prgs de gestion fait avec VC7.0 sous 98/95/ME et NT.40
    c'est pas le top , la couche OLE est trop <> les OCX ne s'enregistre pas .
    j'ai donc laisser mes OCX en vc6.0 ,
    voila pour l'essentiel.
    Je vais lire ton Tutorial mais j'ai aussi not� des soucis avec un ActiveX �crit en VC6 qui s'enregistre dans Delphi 2006 mais qui ne d�clenche pas les �v�nements... Ou D2006 ne les remonte pas.

    Cel� peut-il �tre en relation avec tes soucis ??

  20. #20
    Candidat au Club
    Inscrit en
    Mars 2006
    Messages
    3
    D�tails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 3
    Par d�faut
    Slt � tous,

    Ce forum et le tuto de farscape m'ont bien aid� pour la migration de l'appli que je dois porter sur vc8.
    Par contre, un point reste obscur. J'ai bien vu que le crt c runtime a chang� et que la lib statique msvcirt.lib est obsol�te. Mais, le pb est que cette appli se base toujours sur cette lib et qu'au moment du link, j'obtiens toujours la m�me erreur:

    LINK : fatal error LNK1104: cannot open file 'msvcirt.lib'

    J'ai bien vu que je pouvais mettre l'option /nodefaultlib:"MSVCIRT.LIB" dans les options du linker. Quand, je la met, ca compiles bien. Par contre, j'obtiens une erreur quelques secondes apr�s le lancement de cette application concernant le C runtime.

    Donc, je me suis dis qu'il y avais un pb par rapport � cette lib.
    Auriez-vous r�ussi � r�soudre ce probl�me?

    Je travaille sous NT et visual .net 2005. et je suis nOOb au niveau programmation windows.

    Merci d'avance

Discussions similaires

  1. R�ponses: 0
    Dernier message: 25/03/2015, 18h58
  2. migration SQL7(2000) +VB6 vers VB.NET + SQL 2008
    Par ensiaste92 dans le forum MS SQL Server
    R�ponses: 4
    Dernier message: 03/07/2014, 11h39
  3. Communiquez vos retours d'exp�rience sur Delphi .NET
    Par Laurent Dardenne dans le forum Delphi .NET
    R�ponses: 11
    Dernier message: 12/08/2008, 15h46
  4. Vos retours d'exp�rience sur l'utilisation les SGBD Objet ?
    Par Kentin dans le forum D�cisions SGBD
    R�ponses: 17
    Dernier message: 15/09/2007, 08h23

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