From: Steve Hay Date: Thu, 7 Jun 2007 11:48:47 +0000 (+0000) Subject: Stop VC++ from warning "all references to 'SHELL32.dll' discarded X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=d1a8253e39cd846de74220a6e911461d2a431d3a;p=p5sagit%2Fp5-mst-13.2.git Stop VC++ from warning "all references to 'SHELL32.dll' discarded by /OPT:REF" by removing the only reference to a SHELL32.dll function (namely, CommandLineToArgvW(), called from win32_argv2utf8(), which isn't actually used anywhere so delete it). That then caused the warning "/DELAYLOAD:shell32.dll ignored; no imports found from shell32.dll", so remove that /DELAYLOAD option too. p4raw-id: //depot/perl@31347 --- diff --git a/win32/Makefile b/win32/Makefile index c2e500f..afe95fd 100644 --- a/win32/Makefile +++ b/win32/Makefile @@ -364,7 +364,7 @@ ARCHNAME = $(ARCHNAME)-thread # version of 8.x can.) !IF "$(CCTYPE)" == "MSVC60" || "$(CCTYPE)" == "MSVC70" || \ "$(CCTYPE)" == "MSVC80" || "$(CCTYPE)" == "MSVC80FREE" -DELAYLOAD = -DELAYLOAD:ws2_32.dll -DELAYLOAD:shell32.dll delayimp.lib +DELAYLOAD = -DELAYLOAD:ws2_32.dll delayimp.lib !ENDIF # Visual C++ 2005 (VC++ 8.x) creates manifest files for EXEs and DLLs. These diff --git a/win32/makefile.mk b/win32/makefile.mk index 9e01c98..35a5c5c 100644 --- a/win32/makefile.mk +++ b/win32/makefile.mk @@ -363,7 +363,7 @@ ARCHNAME !:= $(ARCHNAME)-thread # version of 8.x can.) .IF "$(CCTYPE)" == "MSVC60" || "$(CCTYPE)" == "MSVC70" \ "$(CCTYPE)" == "MSVC80" || "$(CCTYPE)" == "MSVC80FREE" -DELAYLOAD *= -DELAYLOAD:ws2_32.dll -DELAYLOAD:shell32.dll delayimp.lib +DELAYLOAD *= -DELAYLOAD:ws2_32.dll delayimp.lib .ENDIF # Visual C++ 2005 (VC++ 8.x) creates manifest files for EXEs and DLLs. These diff --git a/win32/win32.c b/win32/win32.c index 21be48c..1c6c17e 100644 --- a/win32/win32.c +++ b/win32/win32.c @@ -60,13 +60,6 @@ typedef struct { #include "EXTERN.h" #include "perl.h" -/* GCC-2.95.2/Mingw32-1.1 forgot the WINAPI on CommandLineToArgvW() */ -#if defined(__MINGW32__) && (__MINGW32_MAJOR_VERSION==1) -# include -#else -EXTERN_C LPWSTR* WINAPI CommandLineToArgvW(LPCWSTR lpCommandLine, int * pNumArgs); -#endif - #define NO_XSLOCKS #define PERL_NO_GET_CONTEXT #include "XSUB.h" @@ -4986,22 +4979,3 @@ win32_free_argvw(pTHX_ void *ptr) *argv++ = Nullch; } } - -void -win32_argv2utf8(int argc, char** argv) -{ - dTHX; - char* psz; - int length, wargc; - LPWSTR* lpwStr = CommandLineToArgvW(GetCommandLineW(), &wargc); - if (lpwStr && argc) { - while (argc--) { - length = WideCharToMultiByte(CP_UTF8, 0, lpwStr[--wargc], -1, NULL, 0, NULL, NULL); - Newxz(psz, length, char); - WideCharToMultiByte(CP_UTF8, 0, lpwStr[wargc], -1, psz, length, NULL, NULL); - argv[argc] = psz; - } - call_atexit(win32_free_argvw, argv); - } - GlobalFree((HGLOBAL)lpwStr); -} diff --git a/win32/win32.h b/win32/win32.h index f6b5e3e..224c657 100644 --- a/win32/win32.h +++ b/win32/win32.h @@ -342,7 +342,6 @@ extern char * win32_get_sitelib(const char *pl); extern char * win32_get_vendorlib(const char *pl); extern int IsWin95(void); extern int IsWinNT(void); -extern void win32_argv2utf8(int argc, char** argv); #ifdef PERL_IMPLICIT_SYS extern void win32_delete_internal_host(void *h); diff --git a/win32/wince.c b/win32/wince.c index 846a33b..f5736b3 100644 --- a/win32/wince.c +++ b/win32/wince.c @@ -2844,14 +2844,6 @@ win32_free_argvw(pTHX_ void *ptr) } } -void -win32_argv2utf8(int argc, char** argv) -{ - /* do nothing, since we're not aware of command line arguments - * currently ... - */ -} - #if 0 void Perl_sys_intern_clear(pTHX)