- Timestamp:
- Jan 22, 2003, 1:56:08 PM (23 years ago)
- Location:
- trunk/src/NTDLL
- Files:
-
- 2 added
- 1 deleted
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/NTDLL/initterm.cpp
r9684 r9704 35 35 #include <misc.h> /*PLF Wed 98-03-18 23:18:15*/ 36 36 #include <initdll.h> 37 #include <exitlist.h> 37 38 38 39 extern "C" { 39 //Win32 resource table (produced by wrc)40 extern DWORD _Resource_PEResTab;41 40 void __ctordtorInit (void); 42 41 void __ctordtorTerm (void); 42 int _CRT_init (void); 43 void _CRT_term (void); 43 44 } 44 static HMODULE dllHandle = 0;45 45 46 BOOL WINAPI NTDLL_LibMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved);47 46 48 //****************************************************************************** 49 //****************************************************************************** 50 BOOL WIN32API LibMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID fImpLoad) 51 { 52 switch (fdwReason) 53 { 54 case DLL_PROCESS_ATTACH: 55 case DLL_THREAD_ATTACH: 56 case DLL_THREAD_DETACH: 57 return NTDLL_LibMain(hinstDLL, fdwReason, fImpLoad); 47 static void APIENTRY cleanup(ULONG reason); 58 48 59 case DLL_PROCESS_DETACH:60 NTDLL_LibMain(hinstDLL, fdwReason, fImpLoad);61 __ctordtorTerm();62 return TRUE;63 }64 return FALSE;65 }66 49 /****************************************************************************/ 67 50 /* _DLL_InitTerm is the function that gets called by the operating system */ … … 86 69 switch (ulFlag) { 87 70 case 0 : 88 __ctordtorInit(); 71 if (_CRT_init () != 0) 72 return 0; 73 __ctordtorInit (); 89 74 90 CheckVersionFromHMOD(PE2LX_VERSION, hModule); /*PLF Wed 98-03-18 05:28:48*/ 75 rc = DosExitList(EXITLIST_NONCRITDLL|EXLST_ADD, cleanup); 76 if (rc) 77 return 0UL; 91 78 92 dllHandle = RegisterLxDll(hModule, (WIN32DLLENTRY)LibMain, (PVOID)&_Resource_PEResTab); 93 if(dllHandle == 0) 94 return 0UL; 79 return inittermNTDLL(hModule, ulFlag); 95 80 96 break;97 81 case 1 : 98 if(dllHandle) { 99 UnregisterLxDll(dllHandle); 100 } 101 break; 82 return inittermNTDLL(hModule, ulFlag); 102 83 103 84 default : … … 112 93 //****************************************************************************** 113 94 //****************************************************************************** 95 static void APIENTRY cleanup(ULONG ulReason) 96 { 97 dprintf(("NTDLL exit")); 98 __ctordtorTerm(); 99 _CRT_term (); 100 101 DosExitList(EXLST_EXIT, cleanup); 102 return ; 103 } 104 //****************************************************************************** 105 //****************************************************************************** -
trunk/src/NTDLL/makefile
r9684 r9704 1 # $Id: makefile,v 1.3 3 2003-01-16 15:22:36sandervl Exp $1 # $Id: makefile,v 1.34 2003-01-22 12:56:07 sandervl Exp $ 2 2 3 3 # … … 33 33 $(OBJDIR)\sync.obj \ 34 34 $(OBJDIR)\initterm.obj \ 35 $(OBJDIR)\initntdll.obj \ 35 36 $(OBJDIR)\time.obj \ 36 37 $(OBJDIR)\unknown.obj \
Note:
See TracChangeset
for help on using the changeset viewer.