Use Unicode command line when not using wmain() under Windows
While we use wmain() for the compilers that provide it since the changes of
bfa78c63b9
, we still didn't handle Unicode
command line arguments not representable in the current Windows code page
correctly when using other compilers (e.g. MinGW).
Now use Win32 ::GetCommandLine() function for them and parse the command line
ourselves instead of relying on non-Unicode-friendly main() arguments which
can't represent arbitrary Unicode strings when not using UTF-8 (which is never
the case under Windows).
This commit is contained in:
@@ -15,6 +15,14 @@
|
||||
// Windows-specific wxEntry() overload and wxIMPLEMENT_WXWIN_MAIN definition
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
// wxEntry() overload using the command line for the current process, instead
|
||||
// of argc/argv provided by the CRT. This is only really useful when using
|
||||
// Unicode with a compiler not providing wmain() or similar entry point, but is
|
||||
// always provided for consistency.
|
||||
extern int WXDLLIMPEXP_BASE wxEntry();
|
||||
|
||||
#if wxUSE_GUI
|
||||
|
||||
// we need HINSTANCE declaration to define WinMain()
|
||||
#include "wx/msw/wrapwin.h"
|
||||
|
||||
@@ -81,5 +89,6 @@ extern WXDLLIMPEXP_CORE int
|
||||
} \
|
||||
wxIMPLEMENT_WXWIN_MAIN_BORLAND_NONSTANDARD
|
||||
|
||||
#endif // wxUSE_GUI
|
||||
|
||||
#endif // _WX_MSW_INIT_H_
|
||||
|
Reference in New Issue
Block a user