2011-02-08 15 views
8

Sto scrivendo un'applicazione C++ in Visual Studio 2008. Ha un sacco di strutture definite in diversi file di intestazione, come ad esempio:Vai a definizione non riesce - Visual Studio 2008

#pragma pack(push , 1)    // align on a 1-byte boundary 

typedef struct myStruct_tag 
{ 
    /* ... */ 
} myStruct_t; 

#pragma pack(pop)      // end 1-byte boundary alignment 

In un file sorgente, queste strutture definite vengono utilizzate come tali:

void MyFunc(void) 
{ 
    myStruct_t * myStruct = NULL; 

    myStruct = (myStruct_t *)malloc(sizeof(myStruct_t)); 

    /* and so forth and so on... */ 
} 

Anche se si compila con successo con 0 errori e 0 avvertimenti, a volte, quando right-click un tipo di dati personalizzata (ad esempio in MyFunc) mi dà un errore:

The symbol 'myStruct_t' is not defined.

Poi fare clic su OK per chiudere la finestra di dialogo e premere Ctrl + Alt + F7 per ricostruire la soluzione. Costruisce senza errori o avvisi, quindi so che sta trovando la definizione di myStruct_t quando compila, ma non riesce a trovarlo quando provo a usare la funzione Vai a definizione. L'unica cosa che mi viene in mente è che questa applicazione ha molte strutture definite, allineate con un singolo byte, ma ciò non dovrebbe fare la differenza. Qualcuno sa come risolvere questo?

risposta

9

Provare a chiudere la soluzione e quindi eliminare il file * .sdf. Quando riapri la tua soluzione, Intellisense sarà costretto a ricostruire il suo database e questo potrebbe risolvere il tuo problema.

Edit: errore fisso ha

Edit 2: Per l'eredità, nel caso in cui si sta utilizzando Visual Studio 2008 o più anziani, è necessario eliminare tutti i file * .ncb.

+0

Questo ha fatto il trucco! Grazie! –

+0

In Visual Studio 2010 non ci sono file * .ncb; ora usa i file * .sdf – Loghorn

+0

Il mio errore. Sto usando VS2008. Aggiornerò di conseguenza l'OP. –

1
  1. Terminare il processo di Visual Studio. (In Visual Studio 2005 potrebbe essere necessario eliminare tutti i file *.ncb quando il processo dello studio visivo viene interrotto)
  2. Riaprire la soluzione e pulire la soluzione: Build -> Clean Solution.
Problemi correlati