[PATCH] rundll32: Only call LoadLibrary16 on x86.
These are imported by ordinal, so on other architectures we end up calling whatever ends up on that ordinal, which is currently Beep on x86_64. Signed-off-by: Esme Povirk <esme(a)codeweavers.com> --- programs/rundll32/rundll32.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/programs/rundll32/rundll32.c b/programs/rundll32/rundll32.c index eb7713518a9..71703284c99 100644 --- a/programs/rundll32/rundll32.c +++ b/programs/rundll32/rundll32.c @@ -83,8 +83,10 @@ static void call_entry_point( void *func, HWND hwnd, HINSTANCE inst, void *cmdli } #endif +#ifdef __i386__ static HINSTANCE16 (WINAPI *pLoadLibrary16)(LPCSTR libname); static FARPROC16 (WINAPI *pGetProcAddress16)(HMODULE16 hModule, LPCSTR name); +#endif static void (WINAPI *pRunDLL_CallEntry16)( FARPROC proc, HWND hwnd, HINSTANCE inst, LPCSTR cmdline, INT cmdshow ); @@ -112,6 +114,7 @@ static ATOM register_class(void) return RegisterClassExW(&wcex); } +#ifdef __i386__ static HINSTANCE16 load_dll16( LPCWSTR dll ) { HINSTANCE16 ret = 0; @@ -143,6 +146,17 @@ static FARPROC16 get_entry_point16( HINSTANCE16 inst, LPCWSTR entry ) } return ret; } +#else +static HINSTANCE16 load_dll16( LPCWSTR dll ) +{ + return 0; +} + +static FARPROC16 get_entry_point16( HINSTANCE16 inst, LPCWSTR entry ) +{ + return 0; +} +#endif static void *get_entry_point32( HMODULE module, LPCWSTR entry, BOOL *unicode ) { -- 2.30.2
participants (1)
-
Esme Povirk