diff --git a/TitanEngine/Global.Engine.Threading.cpp b/TitanEngine/Global.Engine.Threading.cpp index 0735970..605d78e 100644 --- a/TitanEngine/Global.Engine.Threading.cpp +++ b/TitanEngine/Global.Engine.Threading.cpp @@ -19,7 +19,10 @@ void CriticalSectionDeleteLocks() if(!bInitDone) return; for(int i = 0; i < LockLast; i++) + { + EnterCriticalSection(&locks[i]); DeleteCriticalSection(&locks[i]); + } bInitDone = false; } diff --git a/TitanEngine/Global.Garbage.cpp b/TitanEngine/Global.Garbage.cpp index 015b67b..597ec79 100644 --- a/TitanEngine/Global.Garbage.cpp +++ b/TitanEngine/Global.Garbage.cpp @@ -5,7 +5,7 @@ #include "Global.Engine.h" -wchar_t engineSzEngineGarbageFolder[MAX_PATH]; +wchar_t engineSzEngineGarbageFolder[MAX_PATH] = L""; // Global.Garbage.functions: bool CreateGarbageItem(void* outGargabeItem, int MaxGargabeStringSize) diff --git a/TitanEngine/TitanEngine.cpp b/TitanEngine/TitanEngine.cpp index 708404b..3a5f322 100644 --- a/TitanEngine/TitanEngine.cpp +++ b/TitanEngine/TitanEngine.cpp @@ -20,6 +20,7 @@ BOOL APIENTRY DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) break; case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: + break; //this bug has been here since 2010 case DLL_PROCESS_DETACH: if(lpvReserved) ExtensionManagerPluginReleaseCallBack(); diff --git a/TitanEngine/TitanEngine.vcxproj b/TitanEngine/TitanEngine.vcxproj index ea40d4b..ea1ea5f 100644 --- a/TitanEngine/TitanEngine.vcxproj +++ b/TitanEngine/TitanEngine.vcxproj @@ -109,7 +109,7 @@ $(ProjectDir)scylla_wrapper_x86.lib;$(ProjectDir)distorm_x86.lib;Imagehlp.lib;psapi.lib;%(AdditionalDependencies) $(ProjectDir)TitanEngine.def - false + true UseLinkTimeCodeGeneration /ignore:4197 %(AdditionalOptions) @@ -169,7 +169,7 @@ $(OutDir)TitanEngine.dll false $(ProjectDir)TitanEngine.def - false + true Windows true true