X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c67d6888d421207045dc6ce9c9762727118c92e2..0adad2d72ffb322510e78ea366c58adbd1e8082e:/src/msw/app.cpp diff --git a/src/msw/app.cpp b/src/msw/app.cpp index 35a9e2a58e..ea3044497a 100644 --- a/src/msw/app.cpp +++ b/src/msw/app.cpp @@ -49,6 +49,7 @@ #endif #include "wx/cmdline.h" +#include "wx/filename.h" #include "wx/module.h" #include "wx/msw/private.h" @@ -192,9 +193,9 @@ END_EVENT_TABLE() bool wxApp::Initialize() { // the first thing to do is to check if we're trying to run an Unicode - // program under Win9x - if so, abort right now as it has no chance to - // work -#if wxUSE_UNICODE + // program under Win9x w/o MSLU emulation layer - if so, abort right now + // as it has no chance to work +#if wxUSE_UNICODE && !wxUSE_UNICODE_MSLU if ( wxGetOsVersion() != wxWINDOWS_NT ) { // note that we can use MessageBoxW() as it's implemented even under @@ -203,14 +204,14 @@ bool wxApp::Initialize() ::MessageBox ( NULL, - _T("This program uses Unicode and requires Windows NT/2000.\nProgram aborted."), + _T("This program uses Unicode and requires Windows NT/2000/XP.\nProgram aborted."), _T("wxWindows Fatal Error"), MB_ICONERROR | MB_OK ); return FALSE; } -#endif // wxUSE_UNICODE +#endif // wxUSE_UNICODE && !wxUSE_UNICODE_MSLU // Some people may wish to use this, but // probably it shouldn't be here by default. @@ -566,6 +567,13 @@ void wxApp::ConvertToStandardCommandArgs(const char* lpCmdLine) argv[0] = new wxChar[260]; // 260 is MAX_PATH value from windef.h ::GetModuleFileName(wxhInstance, argv[0], 260); + // also set the app name from argv[0] + wxString name; + wxFileName::SplitPath(argv[0], NULL, &name, NULL); + + SetAppName(name); + + // copy all the other arguments to wxApp::argv[] for ( int i = 1; i < argc; i++ ) { argv[i] = copystring(args[i - 1]); @@ -779,7 +787,8 @@ int wxEntry(WXHINSTANCE hInstance, wxCHECK_MSG( wxTheApp, 0, wxT("You have to define an instance of wxApp!") ); // save the WinMain() parameters - wxTheApp->ConvertToStandardCommandArgs(lpCmdLine); + if (lpCmdLine) // MicroWindows passes NULL + wxTheApp->ConvertToStandardCommandArgs(lpCmdLine); wxTheApp->m_nCmdShow = nCmdShow; // We really don't want timestamps by default, because it means