Partager via


/Gh (Activer la fonction de raccordement _penter)

Mise à jour : novembre 2007

Déclenche un appel à la fonction _penter au début de chaque méthode ou fonction.

/Gh

Notes

La fonction _penter ne fait partie d'aucune bibliothèque et c'est à vous de fournir une définition pour _penter.

Sauf si vous envisagez d'appeler explicitement _penter, vous n'avez pas besoin de fournir un prototype. La fonction doit apparaître comme si elle avait le prototype suivant, et elle doit exécuter un push sur le contenu de tous les registres à l'entrée et un pop sur le contenu non modifié à la sortie :

void __declspec(naked) _cdecl _penter( void );

Pour définir cette option du compilateur dans l'environnement de développement Visual Studio

  1. Ouvrez la boîte de dialogue Pages de propriété du projet. Pour plus d'informations, consultez Comment : ouvrir les pages de propriétés d'un projet.

  2. Cliquez sur le dossier C/C++.

  3. Cliquez sur la page de propriétés Ligne de commande.

  4. Spécifiez l'option du compilateur dans la zone Options supplémentaires.

Pour définir cette option du compilateur par programme

Exemple

Le code suivant, une fois compilé avec /Gh, montre comment _penter est appelée deux fois ; la première fois en entrant la fonction main et la deuxième fois en entrant la fonction 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
    }
}

In a function!
In a function!

Voir aussi

Référence

Options du compilateur

Définition des options du compilateur