/Gh (habilitar função de gancho _penter)
Faz uma chamada à função de _penter no início de cada método ou função.
/Gh
Comentários
A função de _penter não é parte de qualquer biblioteca e cabe a você para fornecer uma definição para _penter.
A menos que você planejar para chamar explicitamente _penter, você não precisa fornecer um protótipo. A função deve aparecer como se tivesse o seguinte protótipo, e deve enviar o conteúdo de todos os registros na entrada e o conteúdo inalterado aparecer na saída:
void __declspec(naked) _cdecl _penter( void );
Essa instrução não está disponível para projetos de 64 bits.
Para definir esta opção do compilador no ambiente de desenvolvimento do Visual Studio
Abra a caixa de diálogo Páginas de Propriedade do projeto. Para obter detalhes, consulte Como abrir páginas de propriedade do projeto.
Clique na pasta C/C++.
Clique na página de propriedades de Linha de Comando.
Digite a opção do compilador na caixa de Opções Adicionais .
Para definir essa opção do compilador via programação
- Consulte AdditionalOptions.
Exemplo
O código a seguir, quando criado com /Gh, mostra como _penter é chamado duas vezes; uma vez que ao inserir a função main e uma vez ao inserir a função 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
}
}