/Gh - Enable _penter Hook Function (Windows CE 5.0)
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
Send Feedback on this topic to the authors