We recommend using Visual Studio 2017



The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.

The latest version of this topic can be found at __dllonexit.

Registers a routine to be called at exit time.

_onexit_t __dllonexit(   _onexit_t func,  
   _PVFV **  pbegin,   
   _PVFV **  pend   


Pointer to a function to be executed upon exit.

Pointer to a variable that points to the beginning of a list of functions to execute on detach.

Pointer to variable that points to the end of a list of functions to execute on detach.

If successful, a pointer to the user’s function. Otherwise, a NULL pointer.

The __dllonexit function is analogous to the _onexit function except that the global variables used by that function are not visible to this routine. Instead of global variables, this function uses the pbegin and pend parameters.

The _onexit and atexit functions in a DLL linked with MSVCRT.LIB must maintain their own atexit/_onexit list. This routine is the worker that gets called by such DLLs.

The _PVFV type is defined as typedef void (__cdecl *_PVFV)(void).

RoutineRequired file

_onexit, _onexit_m