/Gh - Enable _penter Hook Function (Windows CE 5.0)

Send Feedback

This option causes a call to the _penter function at the start of every method or function. The _penter function is not part of any library and it is up to you to provide a definition for _penter.

/Gh

Remarks

The /Gh option is supported by x86 microprocessors only.

Unless you plan to explicitly call _penter, you do not need to provide a prototype. The function must appear as if it had the following prototype, and it must push the content of all registers on entry and pop the unchanged content on exit:

void __declspec(naked) _cdecl _penter( void );

Example

The following code, when compiled with /Gh, shows how _penter is called twice; once when entering function main and once when entering function x.

#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("\nIn a function!");

    _asm {
        pop esi
        pop edi
        pop ebp
        pop edx
        pop ecx
        pop ebx
        pop eax
        ret
    }
}

See Also

Compiler Options

Send Feedback on this topic to the authors

Feedback FAQs

© 2006 Microsoft Corporation. All rights reserved.