X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a20844525f329c8387191dbde0eab86693412851..dc26e9846f6b4757db2e43485de70ba14c435a9e:/src/common/init.cpp diff --git a/src/common/init.cpp b/src/common/init.cpp index aca0a83306..8b11d75ce1 100644 --- a/src/common/init.cpp +++ b/src/common/init.cpp @@ -37,7 +37,8 @@ #include "wx/scopedptr.h" #include "wx/except.h" -#if defined(__WXMSW__) +#if defined(__WINDOWS__) + #include "wx/msw/private.h" #include "wx/msw/msvcrt.h" #ifdef wxCrtSetDbgFlag @@ -52,7 +53,7 @@ } } gs_enableLeakChecks; #endif // wxCrtSetDbgFlag -#endif // __WXMSW__ +#endif // __WINDOWS__ // ---------------------------------------------------------------------------- // private classes @@ -203,8 +204,7 @@ static void FreeConvertedArgs() free(gs_initData.argv[i]); } - delete [] gs_initData.argv; - gs_initData.argv = NULL; + wxDELETEA(gs_initData.argv); gs_initData.argc = 0; } } @@ -238,6 +238,16 @@ static bool DoCommonPreInit() wxLog::GetActiveTarget(); #endif // wxUSE_LOG +#ifdef __WINDOWS__ + // GUI applications obtain HINSTANCE in their WinMain() but we also need to + // initialize the global wxhInstance variable for the console programs as + // they may need it too, so set it here if it wasn't done yet + if ( !wxGetInstance() ) + { + wxSetInstance(::GetModuleHandle(NULL)); + } +#endif // __WINDOWS__ + return true; } @@ -422,9 +432,9 @@ void wxEntryCleanup() // ---------------------------------------------------------------------------- // for MSW the real wxEntry is defined in msw/main.cpp -#ifndef __WXMSW__ +#ifndef __WINDOWS__ #define wxEntryReal wxEntry -#endif // !__WXMSW__ +#endif // !__WINDOWS__ int wxEntryReal(int& argc, wxChar **argv) {