MortenMacFly wrote: ↑Sat May 15, 2021 5:51 am
GUYS! Guess what, I figured it out (but I am stills stuck!).
The issue is due to
static linking!
Can you (PB) do me a favour and try that on your Czech locale if you can reproduce? I am using wxWidgets 3.1.5, compiled monolitic.
I used MSVS 2019 (64-bit DLL Debug) for this before, as I did not think it would be compiler related.
I have now tried with GCC and the code above, where I only added
which GCC needs for std::shared_ptr to actually build.
Firstly, I used wxWidgets master and 32-bit GCC 10.3 (MSYS2 package mingw-w64-i686-toolchain), as master does not build as monolithic when using wxWebViewEdge and GCC makefile, I built 32-bit debug multilib real static, basically like like this
Code: Select all
mingw32-make -f makefile.gcc CXXFLAGS="-std=c++17" LDFLAGS="-static"
Could not reproduce the issue, i.e., no assert message was shown, regardless whether wxLocale's decimal separator matches Windows one (I have tried both, with wxLocale's set to the comma and point, the Windows' is always the comma).
Secondly, I used wxWidgets 3.1.5 and 64-bit GCC 8.1 (mingw-w64: x86_64-8.1.0-win32-seh-rt_v6-rev0), where I built 64-bit debug monlithic real static build, basically like like this
Code: Select all
mingw32-make -f makefile.gcc MONOLITHIC=1 CFG=-810_x64_mono_staticCRT CXXFLAGS="-std=c++17" LDFLAGS="-static"
So this should be basically the same you have, C::B build log was
Code: Select all
g++.exe -pipe -mthreads -D__GNUWIN32__ -D__WXMSW__ -DwxUSE_UNICODE -Wall -std=c++17 -g -D__WXDEBUG__ -ID:\Dev\Desktop\!Lib\wxWidgets-3.1.5\include -ID:\Dev\Desktop\!Lib\wxWidgets-3.1.5\lib\gcc_lib-810_x64_mono_staticCRT\mswud -c C:\dev\myapps\test-locale-static315-810\test_locale_static315_810App.cpp -o obj\Debug\test_locale_static315_810App.o
g++.exe -LD:\Dev\Desktop\!Lib\wxWidgets-3.1.5\lib\gcc_lib-810_x64_mono_staticCRT -o bin\Debug\test-locale-static315-810.exe obj\Debug\test_locale_static315_810App.o obj\Debug\resource.res -static -mthreads -lwxmsw31ud -lwxpngd -lwxjpegd -lwxtiffd -lwxzlibd -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lcomctl32 -lwsock32 -lodbc32 -lshlwapi -lversion -loleacc -luxtheme -mwindows
However, I could not reproduce the issue there neither. I have noticed your Windows libraries list looks slightly different and you also have
there. The libraries in my project are just those added by C::B wxWidgets project wizard. Unlike me, you probably also do not have a "real" static build where one links statically not only to wxWidgets but also to the compiler libraries? You also do not build with C++17 standard but it is not very likely that this has any effect on the issue in question.
I would also try with a truly minimal project as I did, to make sure no other library is interfering.
I am running 64-bit Win10 Pro 20H2 build 19042.985. Language and locale both set to Czech.