Compartilhar via


/GH (_penter para habilitar 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.

A menos que você pretende chamar explicitamente _penter, você não precisa fornecer um protótipo. A função deve aparecer como se ele tivesse o seguinte protótipo e deve empurrar o conteúdo de todos os registradores na entrada e retirar o conteúdo inalterado ao sair:

void __declspec(naked) _cdecl _penter( void );

Essa declaração não está disponível para os projetos de 64 bits.

Para definir esta opção de compilador no ambiente de desenvolvimento Visual Studio

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

  2. Clique o C/C++ pasta.

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

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

Para definir esta 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

Definindo opções do compilador