/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
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.
Kliknij przycisk C i C++ folder.
Kliknij przycisk wiersza polecenia stronę właściwości.
Wpisz opcję kompilatora w Dodatkowe opcje pole.
Aby programowo ustawić tę opcję kompilatora
- See AdditionalOptions.
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
}
}