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 :

[MFC]Passage de VC5 à VC6


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2002
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 17
    Par défaut [MFC]Passage de VC5 à VC6
    heeeeeelp, je ne comprends pas .... j'avais un projet sous Visual C++ 5 et je l'ai passé sous Visual C++ 6, et là .... horreur, je ne sais pas pourquoi mais la fonction MoveTo et LineTo (enfin peut-être d'autres aussi) transforme mes "int" se transforme en "short" ?????

    en clair j'ai la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    pDC->MoveTo(0,100);
    pDC->LineTo(0,33000);
    mais lors de l'execution, 33000 est transformé en short (enfin je pense). Je suis sur que le problème ne vient pas de ma transformation avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    pDC->SetMapMode(MM_ANISOTROPIC);
    pDC->SetWindowExt(32000,32000);
    pDC->SetViewportExt(m_fenetre.taille.cx,-m_fenetre.taille.cy);
    pDC->SetViewportOrg(m_fenetre.origine.x,m_fenetre.origine.y);
    car j'ai fais le test jusqu'à 32767 et ça marche, c'est en mettant 32768 que ça plante ...

    Est-ce qu'il s'agit d'un paramétrage VC ?????

    C'est super super super urgent, merci d'avance de votre aide

    Pour info (et cest peut-être là le problème), j'ai le message suivant lors de la compilation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    c:\program files\microsoft visual studio\vc98\mfc\include\afxv_w32.h(119) : warning C4005: '_WIN32_WINDOWS' : macro redefinition
            d:\mes documents\développements logiciels xxx\xxx\stdafx.h(22) : see previous definition of '_WIN32_WINDOWS'
    [Titre édité par Abelman]
    [Ancien titre = au secours ... config VC]
    [Merci d'utiliser des titres explicites]

  2. #2
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Par défaut Re: [MFC]Passage de VC5 à VC6
    Citation Envoyé par _Thomas_
    Pour info (et cest peut-être là le problème), j'ai le message suivant lors de la compilation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    c:\program files\microsoft visual studio\vc98\mfc\include\afxv_w32.h(119) : warning C4005: '_WIN32_WINDOWS' : macro redefinition
            d:\mes documents\développements logiciels xxx\xxx\stdafx.h(22) : see previous definition of '_WIN32_WINDOWS'
    cela pourrait en effet venir de là. Quelle est ta version de Windows ?
    voici un tableau qui donne les macro (version windows à définir selon l'os) dans le stdAfx.h
    Citation Envoyé par MSDN
    Windows Server 2003 family _WIN32_WINNT>=0x0502
    Windows XP _WIN32_WINNT>=0x0501
    Windows 2000 _WIN32_WINNT>=0x0500
    Windows NT 4.0 _WIN32_WINNT>=0x0400
    Windows Me _WIN32_WINDOWS=0x0490
    Windows 98 _WIN32_WINDOWS>=0x0410

  3. #3
    Membre averti
    Inscrit en
    Octobre 2002
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 17
    Par défaut
    je travaille sous Windows 98 SE.

    dans le fichier afxv_w32.h, il y a ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define _WIN32_WINDOWS 0x0500
    et dans mon fichier stdafx.h, il y a ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #ifndef _WIN32_WINNT
    #define _WIN32_WINNT 0x0400
    #endif
    Là je suis un peu perdu, je ne sais pas quand est inclus le fichier afxv_w32.h ... et je ne sais pas pourquoi il est forcé à 0x0500 (Windows 2000) ... une idée de ce que je dois faire ?

  4. #4
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Par défaut
    Essaye de compiler en mettant les définitions Winnt du stdafx.h en commentaires

  5. #5
    Membre averti
    Inscrit en
    Octobre 2002
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 17
    Par défaut
    je pense avoir résolu le gros de mon problème ... malheureusement

    Citation Envoyé par Base de connaissances Microsoft - 39802
    INFO: Limit of Logical Coordinate System in Windows

    The limits of the logical coordinate system are from -32768 to +32767. An item can be drawn anywhere within this coordinate system; however, the window extent cannot be set to greater than 32767. (Although this might seem to limit the system to the -16384 to 16383 range, this is not the case.) If the viewport and window are set up properly, everything will be shown. For example, to set up the whole logical coordinate system to be shown within the application's area of the screen, the following code works properly:
    ça me semble bien être mon problème, non?

    Citation Envoyé par abelman
    Essaye de compiler en mettant les définitions Winnt du stdafx.h en commentaires
    ça ne change rien ... je ne vois pas comment faire pour supprimer ce message ... d'autant plus que que ce fameux fichier afxv_w32.h est contenu dans afxver_.h lui-même inclus dans afx.h lui-même inclus dans afxwin.h lui-même inclus dans mon stdafx.h ... et ces inclusions sont sans conditions, sauf bien sur la suivante dans afxwin.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #ifndef __AFX_H__
    	#include <afx.h>
    #endif
    qui ne sert que pour ne pas inclure le fichier plusieurs fois.

    Donc à moins de supprimer afxwin.h de mon stdafx.h j'aurai toujours ce warning ...

    une autre idée ?

  6. #6
    Membre averti
    Inscrit en
    Octobre 2002
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 17
    Par défaut
    bon je viens de trouver la solution, enfin le moyen de ne plus avoir ce warning, j'éspère que mon projet va encore marcher ....

    En fait j'ai crée un nouveau projet pour voir la différence entre mon stdafx.h et le nouveau.

    et bien ils ont simplement supprimer les lignes suivantes
    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
    ...
    #ifndef WINVER
    #define WINVER 0x0400
    #endif
     
    #ifndef _WIN32_WINNT
    #define _WIN32_WINNT 0x0400
    #endif						
     
    #ifndef _WIN32_WINDOWS
    #define _WIN32_WINDOWS 0x0410
    #endif
     
    #ifndef _WIN32_IE
    #define _WIN32_IE 0x0400
    #endif
    ...
    et ça compile sans warning ... normal puisque je ne défini plus 2 fois _WIN32_WINDOWS , mais reste à savoir si ça marche encore

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

Discussions similaires

  1. MFC : Passage à Visual Studio 2008 ?
    Par Someonelse dans le forum MFC
    Réponses: 17
    Dernier message: 03/11/2008, 18h36
  2. [MFC] passage d'un CEdit à une fonction
    Par le-makinero dans le forum MFC
    Réponses: 28
    Dernier message: 22/05/2006, 09h11
  3. [MFC]Démarrer avec VC6.0.
    Par beginn3r dans le forum MFC
    Réponses: 5
    Dernier message: 19/12/2005, 22h05
  4. [VC6 et MFC] Exception dans MFC42D.dll
    Par Philippe320 dans le forum MFC
    Réponses: 8
    Dernier message: 09/12/2005, 14h14
  5. [MFC] Passage d'une structure dans une method
    Par KPitN dans le forum MFC
    Réponses: 5
    Dernier message: 18/06/2004, 10h11

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