2011-08-06 15 views
8

veces VS autos/locales/relojes se rompen y en lugar de variables/valores de todo lo que tengo es diferentes tipos de:Cómo reparar los locales de Visual Studio/relojes en C++ (versión de depuración)

CXX0029: Error: not struct pointer 
CXX0033: Error: error in OMF type information 
CXX0072: Error: type information missing or unknown 
CXX0025: Error: operator needs class/struct/union 

La reconstrucción del proyecto, la limpieza PDB/NCB, etc. no lo resuelve. ¿Que puedo hacer?

+0

¡Excelente pregunta! ¡Triste, que aún no obtuviste ningún voto positivo! –

Respuesta

3

mirada a esta nota de soporte de Microsoft en: FIX: CXX0033 Error in OMF Type from Forward Class Declaration

Una vez que se soluciona el problema PCH citado en la nota de apoyo, creo que todos los errores se irán.

+0

De acuerdo con el artículo de KB, _este problema se corrigió en Microsoft Visual C++, Edición de 32 bits, versión 4.0_. Sin embargo, desactivar los encabezados precompilados ayudó. El tiempo de compilación ahora es muy malo, pero al menos puedo depurar mi código. ¡Gracias! – John

0

¿Está intentando depurar la compilación "liberar"? De ser así, muchas variables locales no existirán como elementos "depurables". Puede evitar esto (si debe depurar la compilación de versión) depurando en el nivel de ensamblaje y observar los valores de registro (frente a los valores de pila, donde auto/local estaría en la compilación de depuración) y moldearlos apropiadamente en el " ver la ventana ".

De lo contrario, cree la compilación Debug y depure esa versión de compilación. Obtendrá afirmaciones en las que no se cumplen las condiciones previas, material relevante/irrelevante descargado en la ventana de salida y más pasos sencillos de depuración simple.

+0

Estoy hablando de compilación de depuración. – John

1

De hecho, hay una solución que le permite seguir usando encabezados precompilados: revise este more recent KB article y documentation of the /Yl switch - que parece específicamente adaptado para este error.

Simplemente agregue a la línea de comando stdafx.cpp (o su propio archivo personalizado/Yc) '/ Ylxxxx', donde xxxx representa un nombre de función arbitrario en su lib.

Recientemente me enfrenté a síntomas idénticos a los suyos (en VS2010), y eso lo resolvió para mí.

Cuestiones relacionadas