Hi, 8bit fans!The Windows variant is now available as well. I am not sure if the original variant had QR-Code functionality enabled, because the configuration file itself looked like it was disabled. But, maybe I am mistaken here. In any case, QR-Codes are available in the Windows variant.
A few words on what the way to the final Win32 binary looked like:It was a lengthy process as it required several
cleanups,
language standard adaptations and
some bug fixes in code and build scripts. There were also a few pesky compiler problems as MinGW (the windows GCC toolchain) exists in
several variants that have different exception handling. They're called "dwarf", "sjlj" and "ceh" but of course one has first to find out which one fits best and what kind of compiler is being shipped by Qt, the UI framework. Also, I had to compile all the needed libs manually and with the correct compiler version. Sometimes is was pretty straightforward, but more often it was a brutal trial & error enterprise.
And as already mentioned in the posting on the macOS version the C++ code had to be C++17 conform. C++17 is the latest standard which and is widely supported by the usual vendors: Microsoft, Apple, GNU/Linux etc.
However, I stumbled upon some really nasty bugs like collisions with the new "std::byte" class which some decade-old C++ includes from Microsoft provoked. In the macOS variant there were no such errors, because there is no Microsoft where Apple is and vice versa. But I couldn't allow a single code base to get split only because of some archaic include files! So, debugging, debugging, ... and debugging.
Also, the inconsistent usage of "using namespace std;" throughout the source code led not only to a problematic "namespace pollution" but also very often to collisions regarding function & class names. When you mix & match things liberally they'll sooner or later go after you to bite you in the neck. Such problems could only be solved manually and line by line. Around 70% of files were changed this way. Yes, a tedious journey but this has made the current source code compilable under the most modern compilers which also means that one can start to plan a proper upgrading of the code base. First, make it clean then make it better.
All in All, the binary is working fine and in the next hours or so I will be preparing a release and then come back with a new posting.
Here the
full commit on GitHub.
Have fun and...