From: Steve Hay Date: Mon, 23 Nov 2009 23:04:41 +0000 (+0000) Subject: Fix code-before-declaration error on Win32 with recent VC++ compilers X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=dbb3120a48c1483138e02a3fadf359e5b664ae11;p=p5sagit%2Fp5-mst-13.2.git Fix code-before-declaration error on Win32 with recent VC++ compilers (We only #define SET_INVALID_PARAMETER_HANDLER for VC2005 and later, so users of earlier compilers will not have seen this error) --- diff --git a/win32/win32.c b/win32/win32.c index d583087..b9eea70 100644 --- a/win32/win32.c +++ b/win32/win32.c @@ -4801,16 +4801,6 @@ Perl_win32_init(int *argcp, char ***argvp) { HMODULE module; - /* When the manifest resource requests Common-Controls v6 then - * user32.dll no longer registers all the Windows classes used for - * standard controls but leaves some of them to be registered by - * comctl32.dll. InitCommonControls() doesn't do anything but calling - * it makes sure comctl32.dll gets loaded into the process and registers - * the standard control classes. Without this even normal Windows APIs - * like MessageBox() can fail under some versions of Windows XP. - */ - InitCommonControls(); - #ifdef SET_INVALID_PARAMETER_HANDLER _invalid_parameter_handler oldHandler, newHandler; newHandler = my_invalid_parameter_handler; @@ -4828,6 +4818,16 @@ Perl_win32_init(int *argcp, char ***argvp) #endif MALLOC_INIT; + /* When the manifest resource requests Common-Controls v6 then + * user32.dll no longer registers all the Windows classes used for + * standard controls but leaves some of them to be registered by + * comctl32.dll. InitCommonControls() doesn't do anything but calling + * it makes sure comctl32.dll gets loaded into the process and registers + * the standard control classes. Without this even normal Windows APIs + * like MessageBox() can fail under some versions of Windows XP. + */ + InitCommonControls(); + module = GetModuleHandle("ntdll.dll"); if (module) { *(FARPROC*)&pfnZwQuerySystemInformation = GetProcAddress(module, "ZwQuerySystemInformation");