1
0
mirror of https://github.com/FunkyFr3sh/cnc-ddraw.git synced 2025-03-25 10:07:47 +01:00

fix GCC build

This commit is contained in:
FunkyFr3sh 2020-09-22 14:04:49 +02:00
parent 62d1451885
commit 5c919177d9

View File

@ -42,6 +42,10 @@ void Hook_PatchIAT(HMODULE hMod, char *moduleName, char *functionName, PROC newF
if (!hMod || hMod == INVALID_HANDLE_VALUE || !newFunction)
return;
#ifdef _MSC_VER
__try
{
#endif
PIMAGE_DOS_HEADER pDosHeader = (PIMAGE_DOS_HEADER)hMod;
if (pDosHeader->e_magic != IMAGE_DOS_SIGNATURE)
return;
@ -94,6 +98,12 @@ void Hook_PatchIAT(HMODULE hMod, char *moduleName, char *functionName, PROC newF
pImportDescriptor++;
}
#ifdef _MSC_VER
}
__except (EXCEPTION_EXECUTE_HANDLER)
{
}
#endif
}
void Hook_Create(char *moduleName, char *functionName, PROC newFunction, PROC *function)
@ -213,18 +223,20 @@ void Hook_Init()
{
if (!Hook_Active || HookingMethod == 3 || HookingMethod == 4)
{
#ifdef _MSC_VER
if (!Hook_Active && HookingMethod == 3)
{
FARPROC proc = GetProcAddress(GetModuleHandle("kernelbase.dll"), "LoadLibraryExW");
if (proc)
real_LoadLibraryExW = proc;
real_LoadLibraryExW = (LOADLIBRARYEXWPROC)proc;
DetourTransactionBegin();
DetourUpdateThread(GetCurrentThread());
DetourAttach((PVOID*)&real_LoadLibraryExW, (PVOID)fake_LoadLibraryExW);
DetourTransactionCommit();
}
#endif
Hook_Active = TRUE;
@ -266,6 +278,7 @@ void Hook_Exit()
{
Hook_Active = FALSE;
#ifdef _MSC_VER
if (HookingMethod == 3)
{
DetourTransactionBegin();
@ -273,6 +286,7 @@ void Hook_Exit()
DetourDetach((PVOID*)&real_LoadLibraryExW, (PVOID)fake_LoadLibraryExW);
DetourTransactionCommit();
}
#endif
Hook_Revert("user32.dll", "GetCursorPos", (PROC)fake_GetCursorPos, (PROC *)&real_GetCursorPos);
Hook_Revert("user32.dll", "ClipCursor", (PROC)fake_ClipCursor, (PROC *)&real_ClipCursor);