Udostępnij za pośrednictwem


/Gh (Włącz funkcję _penter Hook)

Powoduje wywołanie _penter funkcji na początku każdej metody lub funkcji.

/Gh

Uwagi

_penter Funkcja nie jest częścią dowolnej biblioteki i to do podania definicję dla _penter.

Chyba że planujesz jawnie wywołać _penter, nie trzeba podać prototyp.Funkcja musi znajdować się tak, jakby miał następującym prototypie i musi naciskać zawartość wszystkich rejestrów na zapis i pop bez zmian zawartości przy wyjściu:

void __declspec(naked) _cdecl _penter( void );

Deklaracja ta nie jest dostępna dla 64-bitowych projektów.

Aby ustawić tę opcję kompilatora w środowisku programowania Visual Studio

  1. Otwórz okno dialogowe Strony właściwości projektu.Szczegółowe informacje – zobacz: Porady: otwieranie stron właściwości projektów.

  2. Kliknij folder C/C++.

  3. Kliknij stronę właściwości Wiersz polecenia.

  4. Wpisz opcję kompilatora w Dodatkowe opcje pole.

Aby programowo ustawić tę opcję kompilatora

Przykład

Poniższy kod, począwszy od /Gh, pokazuje, jak _penter jest wywoływana dwukrotnie; raz podczas wprowadzania funkcji main i raz podczas wprowadzania funkcji 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
    }
}
  

Zobacz też

Informacje

Opcje kompilatora

Ustawianie opcji kompilatora