/GH (Habilitar la función de enlace _penter)
Provoca una llamada a la función _penter al principio de cada método o función.
/Gh
Comentarios
La función _penter no forma parte de ninguna biblioteca y se deja a criterio del programador proporcionar una definición para _penter.
Salvo que tenga intención de llamar explícitamente a _penter, no será necesario que proporcione un prototipo.La función debe parecer como si tuviera el siguiente prototipo, y debe insertar el contenido de todos los registros al entrar y extraer el contenido sin modificar al salir:
void __declspec(naked) _cdecl _penter( void );
Esta declaración no está disponible para los proyectos de 64 bits.
Para establecer esta opción del compilador en el entorno de desarrollo de Visual Studio
Abra el cuadro de diálogo Páginas de propiedades del proyecto.Para obtener información detallada, vea Cómo: Abrir páginas de propiedades del proyecto.
Haga clic en la carpeta C/C++.
Haga clic en la página de propiedades Línea de comandos.
Escriba la opción del compilador en el cuadro Opciones adicionales.
Para establecer esta opción del compilador mediante programación
- Vea AdditionalOptions.
Ejemplo
El código que se muestra a continuación, si se compila con /Gh, muestra cómo se llama dos veces a _penter; una vez al escribir la función main y otra al escribir la función x.
// Gh_compiler_option.cpp
// compile with: /Gh
// processor: x86
#include <stdio.h>
void x() {}
int main() {
x();
}
extern "C" void __declspec(naked) _cdecl _penter( void ) {
_asm {
push eax
push ebx
push ecx
push edx
push ebp
push edi
push esi
}
printf_s("\nIn a function!");
_asm {
pop esi
pop edi
pop ebp
pop edx
pop ecx
pop ebx
pop eax
ret
}
}