/GH (_penter para ativar a função de gancho)
Faz com que uma chamada para o _penter a função no início de cada método ou função.
/Gh
Comentários
O _penter função não faz parte de qualquer biblioteca e cabe a você para fornecer uma definição para _penter.
Se não quiser chamar explicitamente _penter, você não precisará fornecer um protótipo.A função deve aparecer como se ele tivesse o seguinte protótipo e ele deve empurrar o conteúdo de todos os registradores na entrada e pop o conteúdo inalterado ao sair:
void __declspec(naked) _cdecl _penter( void );
Essa declaração não está disponível para projetos de 64 bits.
Para definir esta opção de compilador no ambiente de desenvolvimento Visual Studio
Abra o projeto Páginas de propriedades caixa de diálogo.Para obter detalhes, consulte:Como: abrir páginas de propriedades do projeto.
Clique no C/C++ pasta.
Clique no a linha de comando página de propriedades.
Digite a opção de compilador no Opções adicionais de caixa.
Para definir essa opção de compilador programaticamente
- Consulte AdditionalOptions.
Exemplo
O código a seguir, quando compilado com /Gh, mostra como _penter é chamado duas vezes; uma vez 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
}
}