mirror of https://github.com/lukechilds/node.git
Browse Source
The delay-load hook allows node.exe/iojs.exe to be renamed. Seev2.3.1-releaseefadffe
for more background. This commit is a combined squash of the following previous patches:ba93c583bc
,3bda6cbfa4
,0d6d3dda95
. PR-URL: https://github.com/nodejs/io.js/pull/1763 Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Bert Belder
10 years ago
committed by
Forrest L Norvell
2 changed files with 58 additions and 0 deletions
@ -0,0 +1,33 @@ |
|||
/*
|
|||
* When this file is linked to a DLL, it sets up a delay-load hook that |
|||
* intervenes when the DLL is trying to load 'node.exe' or 'iojs.exe' |
|||
* dynamically. Instead of trying to locate the .exe file it'll just return |
|||
* a handle to the process image. |
|||
* |
|||
* This allows compiled addons to work when node.exe or iojs.exe is renamed. |
|||
*/ |
|||
|
|||
#ifdef _MSC_VER |
|||
|
|||
#define WIN32_LEAN_AND_MEAN |
|||
#include <windows.h> |
|||
|
|||
#include <delayimp.h> |
|||
#include <string.h> |
|||
|
|||
static FARPROC WINAPI load_exe_hook(unsigned int event, DelayLoadInfo* info) { |
|||
HMODULE m; |
|||
if (event != dliNotePreLoadLibrary) |
|||
return NULL; |
|||
|
|||
if (_stricmp(info->szDll, "iojs.exe") != 0 && |
|||
_stricmp(info->szDll, "node.exe") != 0) |
|||
return NULL; |
|||
|
|||
m = GetModuleHandle(NULL); |
|||
return (FARPROC) m; |
|||
} |
|||
|
|||
PfnDliHook __pfnDliNotifyHook2 = load_exe_hook; |
|||
|
|||
#endif |
Loading…
Reference in new issue