2010-09-15 9 views

Respuesta

16

C++ se compila directamente en el código de máquina. No hay un lenguaje intermedio como en .NET. Hay some C++ disassemblers que puede consultar. Hex-Rays decompiler es particularmente bueno.

+0

+1 para Hex-Rays, parece excelente! – Francesco

+0

+1 también para Hex-Rays! Acabo de ver el video (en su sitio web) y realmente se ve como algo que he estado buscando durante mucho tiempo. ¡Gracias! – Poni

1

En resumen, no. Cualquier 'reflexión' debe ser a través de algún mecanismo codificado a mano.

+0

Creo que Qt es compatible con algo como esto. – mpen

5

Creo que estás hablando de C++ no administrado. En ese caso, no es posible. C++ se compila en código máquina a diferencia de los lenguajes administrados que compilan en un lenguaje intermedio que contiene los metadatos sobre el código que se compiló.

1

No, C++ no tiene nada como el reflector RedGate, y es incapaz de tal cosa. Un desensamblador no se acercará a lo que está buscando.

1

El código para capacidades introspectivas se puede generar a partir de Gcc-XML, o inyectado con OpenC++, pero el estándar C++ no requiere ninguna instalación particular para esto y no hay instalaciones/utilidades para esto se incluyen con ningún popular compiladores. También es posible que un programa C++ lea la información de depuración en su propio archivo ejecutable, pero definitivamente no es particularmente portátil, rápido o probable para una solución sólida.

Cuestiones relacionadas