2010-10-06 4 views
3

Quand j'ai ouvert un projet VC6 à VS2008 et la construction essayé, je me suis d'abord l'erreur:erreur des prises d'essai lors de la conversion VC6 à VS2008

fatal error C1083: Cannot open include file: 'iostream.h': No such file or directory

error C2259: 'CException' : cannot instantiate abstract class

error BK1506 : cannot open file '.\Debug\SClientDlg.sbr': No such file or directory BSCMAKE SClient

Maintenant, je l'ai changé #include"iostream.h"-#include"iostream" et maintenant obtenir 7errors (comme je l'ai utilisé try et catch 7 places) en disant:

error C2259: 'CException' : cannot instantiate abstract class

est sous l'extrait de ce code:

void SClientDlg::ProcessDomainName(int *m_pDlg,char* strDomainName,int iLen) 
{ 
    try 
    { 
    //Do Something 

    } 
    catch(CException ex) 
    { 
     printf("Exception: %d",GetLastError()); 
    } 


} 
+1

C'est "#include ". – GManNickG

Répondre

4

Vous devrez probablement faire ceci:

catch(CException& ex) // const& might be better 

Depuis CException est abstraite, vous ne pouvez pas instancier, mais vous pouvez faire référence à un objet non-abstrait qui en découle.

+4

Résolu l'erreur, mais curieux de savoir pourquoi il ne lançait aucune erreur dans VC6 – Simsons

+0

@Subhen: Pas une idée. :) Avait probablement la même sémantique, mais VC6 était pré-standard et je n'ai pas mis beaucoup d'efforts pour l'apprendre. – GManNickG

Questions connexes