Ignore:
Timestamp:
Aug 16, 1999, 6:28:05 PM (26 years ago)
Author:
sandervl
Message:

Makefile changes & initterm.cpp no longer calls c/c++ library init & termination functions (should only be done in odincrt.dll)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/advapi32/initterm.cpp

    r120 r510  
    1 /* $Id: initterm.cpp,v 1.3 1999-06-19 10:54:38 sandervl Exp $ */
     1/* $Id: initterm.cpp,v 1.4 1999-08-16 16:28:01 sandervl Exp $ */
    22
    33/*
     
    3434#include <misc.h>       /*PLF Wed  98-03-18 23:18:15*/
    3535
    36 extern "C" {
    37 /*-------------------------------------------------------------------*/
    38 /* _CRT_init is the C run-time environment initialization function.  */
    39 /* It will return 0 to indicate success and -1 to indicate failure.  */
    40 /*-------------------------------------------------------------------*/
    41 int CDECL CRT_init(void);
    42 /*-------------------------------------------------------------------*/
    43 /* _CRT_term is the C run-time environment termination function.     */
    44 /* It only needs to be called when the C run-time functions are      */
    45 /* statically linked.                                                */
    46 /*-------------------------------------------------------------------*/
    47 void CDECL CRT_term(void);
    48 void CDECL _ctordtorInit( void );
    49 void CDECL _ctordtorTerm( void );
    50 }
    51 
    52 /*-------------------------------------------------------------------*/
    53 /* A clean up routine registered with DosExitList must be used if    */
    54 /* runtime calls are required and the runtime is dynamically linked. */
    55 /* This will guarantee that this clean up routine is run before the  */
    56 /* library DLL is terminated.                                        */
    57 /*-------------------------------------------------------------------*/
    58 static void APIENTRY cleanup(ULONG reason);
    59 
    60 
    6136/****************************************************************************/
    6237/* _DLL_InitTerm is the function that gets called by the operating system   */
     
    8156   switch (ulFlag) {
    8257      case 0 :
    83 
    84          /*******************************************************************/
    85          /* The C run-time environment initialization function must be      */
    86          /* called before any calls to C run-time functions that are not    */
    87          /* inlined.                                                        */
    88          /*******************************************************************/
    89 
    90          if (CRT_init() == -1)
    91             return 0UL;
    92          _ctordtorInit();
    93 
    9458         CheckVersionFromHMOD(PE2LX_VERSION, hModule); /*PLF Wed  98-03-18 05:28:48*/
    95          /*******************************************************************/
    96          /* A DosExitList routine must be used to clean up if runtime calls */
    97          /* are required and the runtime is dynamically linked.             */
    98          /*******************************************************************/
    99 
    100          rc = DosExitList(0x0000FF00|EXLST_ADD, cleanup);
    101          if(rc)
    102                 return 0UL;
    103 
    10459         break;
    10560      case 1 :
     
    11469   return 1UL;
    11570}
    116 
    117 
    118 static void APIENTRY cleanup(ULONG ulReason)
    119 {
    120    _ctordtorTerm(); 
    121    CRT_term();
    122    DosExitList(EXLST_EXIT, cleanup);
    123    return ;
    124 }
Note: See TracChangeset for help on using the changeset viewer.