/Gh (_penter kanca işlevini etkinleştir)

Her yöntem veya işlevin _penter başında işlev çağrısına neden olur.

Sözdizimi

/Gh

Açıklamalar

İşlev _penter herhangi bir kitaplığın parçası değildir. için _penterbir tanım sağlamak size bağlı.

açıkça çağırmayı _penterplanlamadığınız sürece bir prototip sağlamanız gerekmez. İşlev, girişte tüm yazmaçların içeriğini göndermeli ve çıkışta değişmemiş içeriği açmalıdır. Aşağıdaki prototipe sahipmiş gibi görünmelidir:

void __declspec(naked) __cdecl _penter( void );

Bu bildirim 64 bit projelerde kullanılamaz.

Bu derleyici seçeneğini Visual Studio geliştirme ortamında ayarlamak için

  1. Projenin Özellik Sayfaları iletişim kutusunu açın. Ayrıntılar için bkz . Visual Studio'da C++ derleyicisi ve derleme özelliklerini ayarlama.

  2. Yapılandırma Özellikleri>C/C++>Komut Satırı özellik sayfasını seçin.

  3. Ek Seçenekler kutusuna derleyici seçeneğini girin.

Bu derleyici seçeneğini program üzerinden ayarlamak için

Örnek

Aşağıdaki kod, /Gh ile derlendiğinde nasıl _penter iki kez çağrıldığını gösterir; bir kez işlev main girerken ve bir kez işlev xgirerken. Örnek, ayrı olarak derlediğiniz iki kaynak dosyadan oluşur.

Kaynak dosya 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
    }
}

Kaynak dosya 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();
}

Çalıştırıldığında, ve xgirişinde main yerel _penter işlev çağrılır:

In a function!
In a function!

Ayrıca bkz.

MSVC derleyici seçenekleri
MSVC derleyicisi komut satırı söz dizimi
/GH (_pexit kanca işlevini etkinleştir)