convertir un projet VC++6 à VC++ 2005

convertir un projet VC++6 à VC++ 2005 - C++ - Programmation

Marsh Posté le 11-10-2007 à 16:50:56    

bonjour  :hello:  
j'ai téléchargé les sources d'un programme qui a été fait avec visual c++ 6, mais moi j'ai vc++ 2005
 
j'ai donc dis oui à la conversion automatique, mais là quand je compile j'ai pas mal d'erreurs (22) qui trainent... pourtant j'ai pris soin d'installer ce qu'il fallait (le sdk de direct x...)
 
est-ce courant que les conversions génèrent des erreurs ?
 
voilà des exemples d'erreurs que ça me fait:
 
 
 
1>.\View_smp.cpp(40) : error C2440: 'static_cast' : cannot convert from 'UINT (__thiscall CViewSample::* )(CPoint)' to 'LRESULT (__thiscall CWnd::* )(CPoint)'
1>        Cast from base to derived requires dynamic_cast or static_cast

Code :
  1. #define ON_WM_NCHITTEST() \
  2. { WM_NCHITTEST, 0, 0, 0, AfxSig_l_p, \
  3.  (AFX_PMSG)(AFX_PMSGW) \
  4.  (static_cast< LRESULT (AFX_MSG_CALL CWnd::*)(CPoint) > (&ThisClass :: OnNcHitTest)) },


 
 
1>.\View_ins.cpp(2125) : error C2065: 'i' : undeclared identifier

Code :
  1. for (UINT i=0; i<penv->nVolEnv; i++) if (nTick <= penv->VolPoints) break;
  2.     for (UINT j=penv->nVolEnv; j>i; j--)


=> erreur semblable pour quelques autres variables
 
 
[i]1>.\Modedit.cpp(389) : error C2228: left of '.dwFlags' must have class/struct/union

Code :
  1. if (i >= nNewChannels) m_SndFile.Chn[i].dwFlags |= CHN_MUTE;


 
 
 
 
 
quelqu'un saurait m'indiquer comment résoudre ces problèmes ? merci d'avance

Reply

Marsh Posté le 11-10-2007 à 16:50:56   

Reply

Marsh Posté le 11-10-2007 à 18:45:17    

\View_ins.cpp(2125) : error C2065: 'i' : undeclared identifier  
 
Pour ça c'est une option du compilo.
 
Pour la première je crois que le compilo VC 2005 est beaucoup plus "exigeant" que ne l'était celui de Visual C6, c'est une pure opinion perso qui est peut-être fausse, et donc tu dois respecter les règles C++, (peut-être aussi qu'il n'accepte plus certaines formes "dépréciées" ).
 
Pour la dernières, regarde la définition de la structure de m_SndFile.Chn[i], ou de m_SndFile,  il doit y avoir un changement.

Reply

Marsh Posté le 12-10-2007 à 08:39:21    

Erreur 1 : &ThisClass :: OnNcHitTest c'ets bien un pointeur sur un eméthode de classe et non pas sur une méthode d'instance ?
Sinon jamais ca marchera. Le prototype d'une méthode d'instance étant retour NomdelaClasse::*(parametre) ce qui est incompatible avec
un pointeur de fonction classique : retour *(parametre)

 

Erreur 2 : La portée d'un compteur de boucle for est limite à la boucle. Donc je pense qu'il manque qqs {} ici

 

Erreur 3 : m_SndFile.Chn[i] ca serait pas un pointeur ?

 

@Trap D : VC2005 est BEAUCOUP plus exigant que VC6 qui était une vrai passoire. En gros il est [i]presque[i] aussi exigant qu'un vrai compilo genre gcc maintenant


Message édité par Joel F le 12-10-2007 à 08:40:08
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed