Quali sono i tuoi consigli per il porting di un enorme progetto VC ++ 6 alla versione VS successiva?

4

Abbiamo un enorme progetto C legacy eseguito in VC ++ 6. E spero che questo sarà portato alle versioni successive di Visual Studio. Ma penso che sarà un grande lavoro. In realtà, ho appena provato a ricompilare il progetto con VS2005 e ho ricevuto così tanti errori.

Quindi, hai qualche esperienza con questo tipo di porting? Qualche raccomandazione?

    
posta Gulshan 07.07.2011 - 07:12
fonte

3 risposte

7

Il porting può essere un duro lavoro e farlo compilare è solo il primo passo. Ma farla compilare è una pietra miliare e qualcosa su cui puntare. Il problema con il porting è che può essere molto intimidatorio osservare un elenco massiccio di 1000 errori (Visual Studio elimina gli errori nella finestra di errore). Sembra senza speranza.

La buona notizia è che anche se ci sono molti cambiamenti tra VC6 e versioni successive, Microsoft ha lavorato duramente per mantenere la compatibilità laddove possibile e per fornire soluzioni semplici per la maggior parte delle incompatibilità. Prendi la speranza da questo e prosegui.

All'inizio il tuo obiettivo è semplicemente quello di farlo compilare. Invece di concentrarsi su mille o più errori, concentrarsi su un progetto che non dipende da altri progetti (un progetto foglia) e disabilitare tutti gli altri nella configurazione della soluzione o utilizzare sistematicamente Build -> Project Only... -> Build . Ora hai molti meno errori da affrontare.

Quindi vai alla finestra di output anziché alla finestra di errore e trova il primo errore . Dimentica gli altri errori perché durante il porting ottieni un effetto a cascata di molti errori spuri. Prova a correggere il primo errore.

Come risolvere il primo errore?

  • Guarda la riga di codice riportata dal messaggio di errore
  • Risolvi il problema se si tratta di un problema ovvio
  • In caso contrario, MSDN, Google e Stack Overflow sono i tuoi amici: ricerca

Chissà, forse hai corretto un centinaio di errori con quella modifica perché era in un file di intestazione che ogni file include. Ora stai facendo progressi. Basta eliminare gli errori, cercando sempre il primo errore. Una volta compilato il progetto foglia, aggiungi più progetti uno alla volta fino a quando non vengono compilati tutti.

Se sei fortunato, noterai i modelli. Dopo aver corretto qualcosa in un posto, usa Find in Solution per correggere casi simili. Probabilmente scoprirai che non hai bisogno di apportare tutte le modifiche che pensavi e a volte il numero di errori diminuirà drasticamente con una singola modifica. Questo aumenterà il tuo morale! Ma può essere imprevedibile. Potresti pensare di essere vicino alla fine e poi una nuova esplosione di problemi si verifica perché il compilatore tenta di sopprimere gli errori successivi in base a quelli precedenti.

Una volta creato, inizia il debug ...

    
risposta data 07.07.2011 - 07:56
fonte
3

Non ne so niente di Visual Studio, ma una ricerca ha trovato questo.

Sembra che tu debba principalmente preoccuparti degli errori di scope, type e scanf.

    
risposta data 07.07.2011 - 07:42
fonte
1

Ottieni una nuova versione di VS (2008 o 2010). VS2005 non era molto comodo da usare.

Se utilizzi un sistema di controllo della versione (e spero che lo faccia), crea un ramo per la migrazione al VS più recente.

Come menzionato prima, inizia a correggere il primo errore.

Ho migrato un grosso progetto da VC6 a VS2008 e la maggior parte degli errori erano qualcosa come winable.h è stato sostituito da winuser.h ecc.

Attenzione, se il progetto dipende da DLL di terze parti compilate con VC6 potresti incorrere in alcuni problemi, ad es. l'implementazione di CString è totalmente cambiata da VC6 a VS2005.

    
risposta data 07.07.2011 - 08:30
fonte

Leggi altre domande sui tag