Code
23BOOL APIENTRY DllMain(HANDLE hModule,24 DWORD ul_reason_for_call,25 LPVOID)26{27 switch(ul_reason_for_call)28 {29 case DLL_PROCESS_ATTACH:30 {31 // The DLL is being loaded into the virtual address space of the current process as a result of the process starting up32 OutputDebugString("DLL_PROCESS_ATTACH\n");33 FDebugHelper::GetInstance().LoadSymbols((HMODULE)hModule);34 // set timer precision35 MMRESULT iTimeSet = timeBeginPeriod(1); // set timeGetTime and sleep resolution to 1 ms, otherwise it's 10-16ms36 DEBUG_VARIABLE(iTimeSet);37 CvAssertMsg(iTimeSet==TIMERR_NOERROR, "failed setting timer resolution to 1 ms");38 CvDllGameContext::InitializeSingleton();39 }40 break;41 case DLL_THREAD_ATTACH:42 OutputDebugString("DLL_THREAD_ATTACH\n");43 break;44 case DLL_THREAD_DETACH:45 OutputDebugString("DLL_THREAD_DETACH\n");46 break;47 case DLL_PROCESS_DETACH:48 OutputDebugString("DLL_PROCESS_DETACH\n");49 timeEndPeriod(1);50 CvDllGameContext::DestroySingleton();51 GC.setDLLIFace(NULL);52 break;53 }5455 return TRUE; // success56}