Simplify DLL hook mechanism

This change deletes the GetProcAddress hook and exports symbols
corresponding to the hooked functions from each hook DLL instead;
we stop at redirecting LoadLibrary/GetModuleHandle calls to the
hook DLL. This simplified approach has less hidden magic going on
behind the scenes and is more readily composable (i.e. a hook DLL
can export redirect symbols for more than one dynamically-loaded
DLL).
This commit is contained in:
Tau
2021-05-22 12:29:39 -04:00
parent b4cd868f85
commit 45e2416702
11 changed files with 84 additions and 126 deletions

View File

@ -1,3 +1,8 @@
LIBRARY chunihook
EXPORTS
Direct3DCreate9
amDllVideoClose @2
amDllVideoGetVBiosVersion @4
amDllVideoOpen @1
amDllVideoSetResolution @3

View File

@ -60,7 +60,7 @@ static DWORD CALLBACK chuni_pre_startup(void)
/* Hook Win32 APIs */
gfx_hook_init(&chuni_hook_cfg.gfx);
gfx_hook_init(&chuni_hook_cfg.gfx, chuni_hook_mod);
serial_hook_init();
/* Initialize emulation hooks */