Compartilhar via


/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

  1. Abra o projeto Páginas de propriedades caixa de diálogo.Para obter detalhes, consulte:Como: abrir páginas de propriedades do projeto.

  2. Clique no C/C++ pasta.

  3. Clique no a linha de comando página de propriedades.

  4. Digite a opção de compilador no Opções adicionais de caixa.

Para definir essa opção de compilador programaticamente

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
    }
}
  
  

Consulte também

Referência

Opções do compilador

Configurando opções de compilador