/Gh (Mengaktifkan fungsi hook _penter)
Menyebabkan panggilan ke _penter
fungsi di awal setiap metode atau fungsi.
Sintaks
/Gh
Keterangan
Fungsi _penter
ini bukan bagian dari pustaka apa pun. Terserah Anda untuk memberikan definisi untuk _penter
.
Kecuali Anda berencana untuk secara eksplisit memanggil _penter
, Anda tidak perlu memberikan prototipe. Fungsi harus mendorong konten semua register pada entri dan memunculkan konten yang tidak berubah saat keluar. Ini harus muncul seolah-olah memiliki prototipe berikut:
void __declspec(naked) __cdecl _penter( void );
Deklarasi ini tidak tersedia untuk proyek 64-bit.
Untuk mengatur opsi pengkompilasi ini di lingkungan pengembangan Visual Studio
Buka kotak dialog Halaman Properti proyek. Untuk detailnya, lihat Mengatur pengkompilasi C++ dan membuat properti di Visual Studio.
Pilih halaman properti Properti>Konfigurasi C/C++>Baris Perintah.
Masukkan opsi pengkompilasi dalam kotak Opsi Tambahan.
Untuk mengatur opsi pengkompilasi ini secara terprogram
- Lihat AdditionalOptions.
Contoh
Kode berikut, saat dikompilasi dengan /Gh, menunjukkan bagaimana _penter
dipanggil dua kali; sekali saat memasukkan fungsi main
dan sekali saat memasukkan fungsi x
. Contohnya terdiri dari dua file sumber, yang Anda kompilasi secara terpisah.
File sumber local_penter.cpp
:
// local_penter.cpp
// compile with: cl /EHsc /c local_penter.cpp
// processor: x86
#include <stdio.h>
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
}
}
File sumber Gh_compiler_option.cpp
:
// Gh_compiler_option.cpp
// compile with: cl /EHsc /Gh Gh_compiler_option.cpp local_penter.obj
// processor: x86
#include <stdio.h>
void x() {}
int main() {
x();
}
Saat dijalankan, fungsi lokal _penter
dipanggil pada entri ke main
dan x
:
In a function!
In a function!
Baca juga
Opsi pengkompilasi MSVC
Sintaks baris perintah pengkompilasi MSVC
/GH
(Aktifkan fungsi hook _pexit)
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk