No IntelliSense per C ++ / CLI in Visual Studio 2010?

Sono passato da Visual Studio 2008 a Visual Studio 2010 (final) e ho notato un difetto importante:

Quando provo a usare AutoComplete in un file sorgente C ++ per C ++ gestito, appare una piccola nota nel footer:

IntelliSense per C ++ / CLI non è disponibile

Uh, IntelliSense per C ++ / CLI è stato rilasciato da Visual Studio 2010? C’è un modo per riaverlo? È piuttosto utile …

Hai ragione. Sfortunatamente è stato abbandonato. È ansible controllare questo problema aperto sul sito Web Connect di Microsoft .

Li citerò solo per il gusto della risposta:

Sfortunatamente in questa versione abbiamo dovuto ridurre il supporto intellisense per C ++ / CLI a causa di limiti di tempo. Se vuoi ottenere un po ‘di intelligenza come le informazioni rapide e la lista dei membri nelle classi native puoi ottenerlo scegliendo il supporto no / clr nelle proprietà del progetto.

Per quanto riguarda il ritorno all’intelligence, le migliori possibilità per ora sono utilizzare strumenti di terze parti come VA Assist, ad esempio. L’ho provato con Visual Studio 2008 e il suo IntelliSense è molto meglio di quello predefinito.

È nuovamente disponibile in Visual Studio 2012 .

Secondo il blog del team di Visual C ++ , C ++ / CLI Intellisense sarà nella prossima versione di Visual Studio, ma non in un service pack per VS2010. Quel post sul blog fornisce anche alcuni dettagli su cosa è andato storto e ha portato a questo stato triste.

Se vuoi recuperare IntelliSense, installa Visual Assist X da Whole Tomato Software. Qui puoi ottenere una prova di 30 giorni per verificare l’intellisense.

Non so se è ansible utilizzare queste impostazioni ma funziona per me. Controllo solo il supporto RunTime in linguaggio comune per i file cpp che lo utilizzano. Non lo controllo per l’intero progetto e ho intellisense per tutti i file che non usano la CLI.

Sì! puoi abilitare IntelliSence, ma in modo complicato. Segui queste istruzioni:

  1. Vai alle proprietà del tuo progetto. (Fare clic con il pulsante destro del mouse sul nome del progetto in Project Explorer e selezionare Proprietà o semplicemente Alt + Invio )
  2. Da Proprietà di configurazione, selezionare Generale
  3. Nella sezione destra, trovare “Common Language Runtime Support” e modificarlo in “No Common Language Runtime Support”.
  4. Fai clic sul pulsante OK.

Ora l’IntelliSence funziona. Ma un problema è un errore quando compili il tuo codice! (L’errore è: errore LNK1123: errore durante la conversione in COFF: file non valido o corrotto )

È sufficiente tornare a Proprietà progetto e modificare il supporto Common Language Runtime su “Common Language Runtime Support, Old Syntax (/ clr: oldSyntax)”.

In bocca al lupo.

Questa soluzione è solo se non si desidera Common Language Runtime
Ha funzionato per me in VS2010
Vai a Project Propreties> Configuration Properties> General> Common Language Runtime Support e impostalo su No Common Language Runtime Support . Questo funzionerà correttamente solo dopo aver premuto il pulsante Applica .

Come accennato, è ansible installare alcuni software a pagamento come “Visual Assist X da Whole Tomato Software”.

o

Potresti usare strumenti open source che contengono intellisense *, uno di questi è Qt Creator 3.3.1 (opensource). Avete due opzioni: impostate l’intero progetto con Qt per compilare usando il compilatore VS2010, o usate Qt per collegarvi ai vostri file sorgente e compilare con VS2010. Scrivi il tuo codice in Qt, salva, capovolgi Windows su vs2010 e compila ed esegui il debug.

Quando le modifiche vengono salvate in Qt, vs2010 ricaricherà automaticamente il file sorgente nel progetto e potrai compilare.