Thread: Errors building on windows
I am getting the following errors:
loadlib.c(114): error C2373: '__pfnDliFailureHook2': redefinition; different type modifiers
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\delayimp.h(141): note: see declaration of '__pfnDliFailur
eHook2'
loadlib.c(115): error C2373: '__pfnDliNotifyHook2': redefinition; different type modifiers
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\delayimp.h(134): note: see declaration of '__pfnDliNotify
Hook2'
loadlib.c(129): error C2166: l-value specifies const object
loadlib.c(190): error C2166: l-value specifies const object
loadlib.c(198): error C2166: l-value specifies const object
loadlib.c(229): error C2166: l-value specifies const object
loadlib.c(237): error C2166: l-value specifies const object
Which appear to be from:
// Prior to Visual Studio 2015 Update 3, these hooks were non-const. They were
// made const to improve security (global, writable function pointers are bad).
// If for backwards compatibility you require the hooks to be writable, define
// the macro DELAYIMP_INSECURE_WRITABLE_HOOKS prior to including this header and
// provide your own non-const definition of the hooks.
ExternC
#ifndef DELAYIMP_INSECURE_WRITABLE_HOOKS
const
#endif
PfnDliHook __pfnDliNotifyHook2;
// This is the failure hook, dliNotify = {dliFailLoadLib|dliFailGetProc}
ExternC
#ifndef DELAYIMP_INSECURE_WRITABLE_HOOKS
const
#endif
PfnDliHook __pfnDliFailureHook2;
It would appear we need to define DELAYIMP_INSECURE_WRITABLE_HOOKS. Is there another way to set the hook to NULL
Dave Cramer
Hi Dave, Thanks for the report. I would fix it. regards, Hiroshi Inoue On 2016/07/20 0:43, Dave Cramer wrote: > I am getting the following errors: > > loadlib.c(114): error C2373: '__pfnDliFailureHook2': redefinition; > different type modifiers > C:\Program Files (x86)\Microsoft Visual Studio > 14.0\VC\INCLUDE\delayimp.h(141): note: see declaration of '__pfnDliFailur > eHook2' > loadlib.c(115): error C2373: '__pfnDliNotifyHook2': redefinition; > different type modifiers > C:\Program Files (x86)\Microsoft Visual Studio > 14.0\VC\INCLUDE\delayimp.h(134): note: see declaration of '__pfnDliNotify > Hook2' > loadlib.c(129): error C2166: l-value specifies const object > loadlib.c(190): error C2166: l-value specifies const object > loadlib.c(198): error C2166: l-value specifies const object > loadlib.c(229): error C2166: l-value specifies const object > loadlib.c(237): error C2166: l-value specifies const object > > Which appear to be from: > > // Prior to Visual Studio 2015 Update 3, these hooks were non-const. > They were > // made const to improve security (global, writable function pointers > are bad). > // If for backwards compatibility you require the hooks to be > writable, define > // the macro DELAYIMP_INSECURE_WRITABLE_HOOKS prior to including this > header and > // provide your own non-const definition of the hooks. > ExternC > #ifndef DELAYIMP_INSECURE_WRITABLE_HOOKS > const > #endif > PfnDliHook __pfnDliNotifyHook2; > > // This is the failure hook, dliNotify = {dliFailLoadLib|dliFailGetProc} > ExternC > #ifndef DELAYIMP_INSECURE_WRITABLE_HOOKS > const > #endif > PfnDliHook __pfnDliFailureHook2; > > > It would appear we need to define DELAYIMP_INSECURE_WRITABLE_HOOKS. Is > there another way to set the hook to NULL > > Dave Cramer