Udostępnij za pośrednictwem


/GH (_penter Włącz funkcję hak)

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

/Gh

Uwagi

_penter Funkcja nie jest częścią dowolnej bibliotece i jest do podania definicji dla _penter.

Chyba że planujesz jawnie wywołać _penter, nie trzeba dostarczyć prototypu.Funkcja muszą być umieszczone tak, jakby miał następujący prototyp i musi push zawartość wszystkich rejestrów na wejściu i pop zawartości bez zmian podczas kończenia pracy:

void __declspec(naked) _cdecl _penter( void );

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

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

  1. Otwórz projekt Stron właściwości okno dialogowe.Aby uzyskać szczegółowe informacje, zobacz Jak: Otwórz strony właściwości projektu.

  2. Kliknij przycisk C i C++ folder.

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

  4. Wpisz opcję kompilatora w Dodatkowe opcje pole.

Aby programowo ustawić tę opcję kompilatora

Przykład

Poniższy kod, gdy kompilowany z /Gh, pokazuje, jak _penter jest wywoływana dwa razy; 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