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

VC++ .NET Discussion :

Migrations de codes MFC de Visual 6.0 vers Visual studio 2005


Sujet :

VC++ .NET

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Août 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Migrations de codes MFC de Visual 6.0 vers Visual studio 2005
    Bonjour,

    depuis quelque temps, j'essaie de migrer une application développé sous visual 6.0 vers visual studio 2005.
    Je me suis donc servit du tutorial de Farscape, mais je me retrouve toujours avec des erreurs de link dont je n'ai aucune idée !!!

    N'étant pas un spécialiste de visual C++, je tourne en rond depuis quelques jours !!!
    Merci pour votre aide si quelqu'un à une idée.

    Voici les erreurs générées :
    ÉditioDXLOSn des liens en cours...
    LINK : warning LNK4075: ' /EDITANDCONTINUE' ignoré à cause de la spécification '/INCREMENTAL:NO'
    DialResultatListe.obj : error LNK2019: symbole externe non résolu "__declspec(dllimport) public: int __thiscall CListCtrlEx::AddItem(class ATL::CStringT<char,class StrTraitMFC_DLL<char,class ATL::ChTraitsCRT<char> > > const &,class ATL::CStringT<char,class StrTraitMFC_DLL<char,class ATL::ChTraitsCRT<char> > > const &,int const &,int const &)" (__imp_?AddItem@CListCtrlEx@@QAEHABV?$CStringT@DV?$StrTraitMFC_DLL@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@0ABH1@Z) référencé dans la fonction "public: class CSubstance * __thiscall CDialResultatListe::GetSubstanceSelected(void)" (?GetSubstanceSelected@CDialResultatListe@@QAEPAVCSubstance@@XZ)
    DialArchivage.obj : error LNK2019: symbole externe non résolu "__declspec(dllimport) public: int __thiscall CListCtrlEx::AddItem(class ATL::CStringT<char,class StrTraitMFC_DLL<char,class ATL::ChTraitsCRT<char> > > const &,class ATL::CStringT<char,class StrTraitMFC_DLL<char,class ATL::ChTraitsCRT<char> > > const &,int const &,int const &)" (__imp_?AddItem@CListCtrlEx@@QAEHABV?$CStringT@DV?$StrTraitMFC_DLL@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@0ABH1@Z) référencé dans la fonction "public: void __thiscall CDialArchivage::UpdateList(void)" (?UpdateList@CDialArchivage@@QAEXXZ)
    DialCommunication.obj : error LNK2001: symbole externe non résolu "__declspec(dllimport) public: int __thiscall CListCtrlEx::AddItem(class ATL::CStringT<char,class StrTraitMFC_DLL<char,class ATL::ChTraitsCRT<char> > > const &,class ATL::CStringT<char,class StrTraitMFC_DLL<char,class ATL::ChTraitsCRT<char> > > const &,int const &,int const &)" (__imp_?AddItem@CListCtrlEx@@QAEHABV?$CStringT@DV?$StrTraitMFC_DLL@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@0ABH1@Z)
    DialControle.obj : error LNK2001: symbole externe non résolu "__declspec(dllimport) public: int __thiscall CListCtrlEx::AddItem(class ATL::CStringT<char,class StrTraitMFC_DLL<char,class ATL::ChTraitsCRT<char> > > const &,class ATL::CStringT<char,class StrTraitMFC_DLL<char,class ATL::ChTraitsCRT<char> > > const &,int const &,int const &)" (__imp_?AddItem@CListCtrlEx@@QAEHABV?$CStringT@DV?$StrTraitMFC_DLL@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@0ABH1@Z)
    DialLibrary.obj : error LNK2001: symbole externe non résolu "__declspec(dllimport) public: int __thiscall CListCtrlEx::AddItem(class ATL::CStringT<char,class StrTraitMFC_DLL<char,class ATL::ChTraitsCRT<char> > > const &,class ATL::CStringT<char,class StrTraitMFC_DLL<char,class ATL::ChTraitsCRT<char> > > const &,int const &,int const &)" (__imp_?AddItem@CListCtrlEx@@QAEHABV?$CStringT@DV?$StrTraitMFC_DLL@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@0ABH1@Z)
    DXLOS.obj : error LNK2019: symbole externe non résolu _SQLConfigDataSource@16 référencé dans la fonction "public: int __thiscall CDXLOSApp::AddODBCText(void)" (?AddODBCText@CDXLOSApp@@QAEHXZ)
    ../Common/dll/DXLOS_debug.exe : fatal error LNK1120: 2 externes non résolus

  2. #2
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 264
    Points : 6 683
    Points
    6 683
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    as-tu vérifié que ton projet est configuré en "Multi-Byte"? Car Visual2005 le met, par défaut, en Unicode. (propriétés du projet -> General -> Character set)

  3. #3
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    Mais là, on dirait bien que ce n'est pas le problème : Erreur d'édition de liens, on dirait qu'il manque les bibliothèques MFC...

    Euh... Dis-moi, tu as quelle édition de Visual 2005 ? Car l'édition Express n'a pas MFC...

  4. #4
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 264
    Points : 6 683
    Points
    6 683
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Médinoc
    Mais là, on dirait bien que ce n'est pas le problème : Erreur d'édition de liens, on dirait qu'il manque les bibliothèques MFC...
    Je ne sais pas trop mais:
    ATL::CStringT<char,class StrTraitMFC_DLL<char,class ATL::ChTraitsCRT<char> > > const &,class ATL::CStringT<char,class StrTraitMFC_DLL<char,class ATL::ChTraitsCRT<char> > > const &,int const &,int const &)"
    Si le compilo cherche des liens vers l'ATL, c'est qu'il y a un problème au niveau des options de compilation non?

  5. #5
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    Non, les CString sont passées de MFC à ATL avec la version 7.0 ou 7.1.
    À ce sujet, elles sont devenues le template CStringT, avec ses spécialisations : CStringA, CStringW et CString qui équivaut à l'une ou l'autre.

    Et comme souvent avec les bibliothèques, le template n'est pas inline mais défini ailleurs (j'ignore si c'est standard ou une extension, mais gcc fait la même chose).

  6. #6
    Nouveau Candidat au Club
    Inscrit en
    Août 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci pour vos réponses.
    A propos de la configuration de mon projet, effectivement je suis bien en "Multi-Byte" -> "jeu de caractères : Utiliser le jeu de caractères multioctet (MBCS)"

    Je pense comme Médinoc que c'est un problème avec les bibliothèques MFC.
    Par ailleur j'ai pu résoudre le problème de la dèrnière erreur sur SQLConfigDataSource en référençant la lib "ODBCCP32.lib" dans les dépendances supplémentaires (propriétés du projet -> General -> éditeur de liens -> entrée ); mais en ce qui concerne les autres erreurs, je planche toujours dessus.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 40
    Points : 26
    Points
    26
    Par défaut
    Tu as regardé les librairies dont dépend ton projet dans les settings sous VC6 ?
    Elles y sont bien toutes aussi sous VC8 ?

    Normalement quand tu fais la migration il met tout comme il faut au moment de la conversion. Mais bon on ne sait jamais....

    N'oublie pas non plus de recompiler avec VC8 toutes les librairies dont dépend ton projet sinon tu risque d'avoir de mauvaises surprises.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    je suis un petit nouveau ici, et j'aimerai savoir comment obtenir la bibliotheque MFC, car j'ai moi aussi des projects VC6 que j'aimerai migré sous VC2005.

    Je n'ai que la version Express pour l'instant qui me sert donc a rien. La seul solution est d'acheter la version complete?

    Merci
    Christian

  9. #9
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    J'en ai peur.

    Ou bien, si tu es étudiant et que ta fac a un contrat avec MSDN Academic Alliance, il est possible d'obtenir gratuitement et en toute légalité des produits Microsoft dont VS2005 Pro (pas la version Team, par contre) qui contient MFC, ATL, les éditeurs de ressources, etc (pour un usage non-commercial uniquement, évidemment).
    ...Et de les conserver légalement même en n'étant plus étudiant (seules les mises à jour sont supposées être inaccessibles).

    Mais si tu n'as pas ça, ben... J'ai bien peur que tu doives l'acheter.

  10. #10
    Nouveau Candidat au Club
    Inscrit en
    Août 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    A propos de ma version, c'est une version d'évaluation de 180 jours (Team Suite).
    En principe mon entreprise doit l'acheter !

    Voici les informations :

    Microsoft Visual Studio 2005
    Version 8.0.50727.42 (RTM.050727-4200)
    Microsoft .NET Framework
    Version 2.0.50727

    Édition installée : Enterprise

    Microsoft Visual Basic 2005 77924-204-0000007-41523
    Microsoft Visual Basic 2005

    Microsoft Visual C# 2005 77924-204-0000007-41523
    Microsoft Visual C# 2005

    Microsoft Visual C++ 2005 77924-204-0000007-41523
    Microsoft Visual C++ 2005

    Microsoft Visual J# 2005 77924-204-0000007-41523
    Microsoft Visual J# 2005

    Microsoft Visual Studio Tools pour Office 77924-204-0000007-41523
    Microsoft Visual Studio Tools for the Microsoft Office System

    Microsoft Visual Web Developer 2005 77924-204-0000007-41523
    Microsoft Visual Web Developer 2005

    Visual Studio 2005 Team Edition for Architects 77924-204-0000007-41523
    Microsoft Visual Studio 2005 Team Edition for Software Architects

    Visual Studio 2005 Team Edition for Developers 77924-204-0000007-41523
    Microsoft Visual Studio 2005 Team Edition for Software Developers

    Visual Studio 2005 Team Edition for Testers 77924-204-0000007-41523
    Microsoft Visual Studio 2005 Team Edition for Software Testers

    Crystal Reports AAC6G-G0CSA4K-U7000P7
    Crystal Reports pour Visual Studio 2005


    SQL Server Analysis Services
    Microsoft SQL Server Analysis Services Designer
    Version 9.00.1399.00

    SQL Server Integration Services
    Microsoft SQL Server Integration Services Designer
    Version 9.00.1399.00

    SQL Server Reporting Services
    Microsoft SQL Server Reporting Services Designers
    Version 9.00.1399.00


    C'est la version entreprise qui est installée donc en principe elle prend en charge les MFC.
    De plus, il est possible d'afficher les fenêtres avec tous les composants et notamment ce fameux "CListCtrlEx" qui pose problème au link.

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par Médinoc
    J'en ai peur.

    Mais si tu n'as pas ça, ben... J'ai bien peur que tu doives l'acheter.

    Merci c'est bien ce que je pensais, je suis plus etudiant et ma version vc6 (officiel) ma suffit pour l'instant pour mon usage perso.

    Concernant MFC: y a-t'il des nouvelles classes sympatiques dans la version livrée avec vc2005 par rapport a la version de vc6?

  12. #12
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    Ben déjà, il y a la classe CString remplacée par le template ATL::CStringT depuis MFC 7...

    Avec les constructeurs qui acceptent directement une chaîne dans les deux formats. La conversion ANSI <--> unicode <--> TCHAR (dans n'importe quel sens) se fait en une ligne et sans avoir besoin du moindre #define!
    • ATL::CStringT : Le template
    • CString : CStringT< TCHAR > (ce qui rend la CString parfaitement compatible avec les anciens programmes)
    • CStringA : CString< char >
    • CStringW : CStringT< wchar_t >


    Idéal pour ceux qui programment en TCHAR et qui se retrouvent avec des fonctions n'acceptant qu'un seul des deux formats.

    Il y a aussi quelques fonctions sympas ajoutées aux CStringT.
    Pour les autres classes, je ne sais pas trop, j'utilise assez peu MFC et je m'en suis surtout rendu compte pour ça...
    Bien sûr, il y a aussi quelques breaking changes, qu'on peut trouver sur l'aide MSDN.

    Par contre, au niveau de l'IDE, je regrette le ClassWizard, disparu (si je me souviens bien) depuis Visual Studio .Net 2003, au profit du volet de propriétés comme en VB.


    PS: Au sujet de la CString transférée de MFC à ATL : Cela rend MFC et ATL d'autant plus inséparables, ce qui a quand même certains avantages.
    Déjà, pour les assertions, tu peux oublier le ASSERT() de MFC au profit de ATLASSERT() qui a le mérite d'afficher l'expression qui a échoué : C'est généralement plus explicite qu'un simple numéro de ligne.

    PS: Tiens, j'ai trouvé le bon lien:
    http://msdn2.microsoft.com/en-us/library/y8bt6w34.aspx
    Et là, ce sont seulement les différences entre MFC 7 et 8.
    Je crois bien que VC6 contenait seulement MFC 4.2...
    Edit: Et voilà la préquelle:
    http://msdn.microsoft.com/library/de...alcnet2003.asp
    http://msdn.microsoft.com/library/de...svisualc70.asp (tu trouveras CStringT en cliquant sur le lien Shared Classes)

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    MErci

Discussions similaires

  1. passage de visual 6.0 vers visual 2010
    Par voltron1984 dans le forum C++
    Réponses: 2
    Dernier message: 27/10/2010, 16h49
  2. visual 6.0 vers visual studio 2005
    Par jojo000 dans le forum Langage
    Réponses: 15
    Dernier message: 04/01/2010, 10h27
  3. Passage de visual C++ express vers visual Studio pro
    Par Arnaud Malabeux dans le forum MFC
    Réponses: 11
    Dernier message: 02/06/2006, 08h33
  4. Migration de bases de données de My SQL vers SQL Server 2005
    Par thvphan dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/04/2006, 13h34

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