Qt Creator 6.0.1 and Qt 6.2.2 running on Windows 7
-
With some initial guidance from @hskoglund (thanks!), I have managed to create Windows 7-compatible DLLs for Qt 6.3.0 (QtCore, QtGui, qwindows).
Purely for experimental/"at your own risk" use of course :)
Download for DLLs (also contains diff file showing the modifications needed to the original source files): https://web.tresorit.com/l/idV8c#QwlBcUwvkQYjzbRSWlZlnQ
Any issues, please let me know.
EDIT: Here is the batch file I used to setup my environment for building:
@echo off REM Set up Microsoft Visual Studio 2019, where <arch> is amd64, x86, etc. CALL "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64 REM Edit this location to point to the source code of Qt SET _ROOT=C:\projects\qt5 SET PATH=%_ROOT%\qtbase\bin;%PATH% SET PATH=C:\ninja;%PATH% cd %_ROOT% SET _ROOT= REM Set Windows version macros to Windows 7 SET CL=/DWINVER=0x0601 %CL% SET CL=/D_WIN32_WINNT=0x0601 %CL% SET CL=/DNTDDI_VERSION=0x06010000 %CL% REM Assume Internet Explorer 8.0 REM See https://docs.microsoft.com/en-us/windows/win32/winprog/using-the-windows-headers#macros-for-conditional-declarations SET CL=/D_WIN32_IE=0x0800 %CL% REM Keeps the command line open when this script is run. cmd /k
-
not sure but maybe an sorts of autopatcher .....to make future QT built Apps work on W7 would be a pretty epic thing, so say you gots an App that uses QT for its GUI etc and for the patcher to just patch all .dlls so App runs on W7
-
Another option would be to use the MinGW Qt Creator releases from GitHub.
Then copy
api-ms-win-core-synch-l1-2-0.dll
anddxgi.dll
from api-ms-win-core-synch-Win7 to Qt Creator'sbin
directory and then have this working:This solution has minimal changes and should be easier to follow. Note that I haven't done extensive testing, just a hello world example built with MinGW 11.2.0, CMake 3.23.1 and Ninja 1.10.2
-
Missed some things in my first set of patched DLLs.
Updated files can be found here: https://web.tresorit.com/l/jPIZs#9pBaP_Eq527nGMyzn2fk8A
-
I realize that this topic is a bit old, but I'm hoping that either @hskoglund or @dmginc is still around.
I've not developed Qt applications (yet :) ), but am just a user and am still primarily using Windows 7 (don't judge or comment, I understand the arguments of why I shouldn't). I often use portable applications which have been built using Qt, such as Calibre. Applications which have been built using Qt 5.x still work perfectly fine, but ones built with Qt 6 do not. When I saw this thread with a simple set of 3 patched files, I thought this was great, but unfortunately, when I replace the 3 files in my portable application, nothing at all visibly happens when I try to launch the app. I am assuming that is because the portable application was built using Qt 6.3.1, and the latest patched files are for Qt 6.3.0?
I am hoping that some kind soul can either provide a set of patched Qt 6.3.1 files and/or provide a set of Qt 6.3.0 original files necessary to "downgrade" my portable application to use Qt 6.3.0, or suggest another solution to my problem.
Thanks in advance for any help you might be able to provide.
-
Hi, I think your best best is to install Qt 6.3.0 and build your app with it. then use the link above for the 3 patched .dlls.
It is possible to install Qt 6.3.0 using the online Qt installer, however you first have to click the "Archive" checkbox to the right and then the "Filter" button.
Also note that the patch is only applicable for Widgets apps (not QML) and only for dynamically built Qt 6.3.0 versions. -
Thanks for replying @hskoglund, but the portable app is already built by others - https://calibre-ebook.com. You can get the various portable versions of the app here - https://download.calibre-ebook.com. The earlier versions of the portable app, through 5.xx, work fine on Windows 7. I'm just trying to find a way to run the latest versions of the app, 6.0.0 and 6.1.0, on Windows 7. The 6.0.0 and 6.1.0 versions were built using Qt 6.3.1, hence my request for either patched versions of the 6.3.1 files, or original versions of the 6.3.0 files other than the patched ones so I can convert the entire app to a 6.3.0 implementation, if that's possible.
-
I took a look at the diff between Qt 6.3.0 and 6.3.1:
Out of the files that need to be modified for running under Windows 7, three source files have been modified: qwindowswindow.cpp, qrhid3d11.cpp, qwindowscontext.cpp
Anyway, I was apply to apply my 6.3.0 changes patch directly as there were no overlapping changes.
Could you try these DLLs under Windows 7?
https://web.tresorit.com/l/iWnTl#yGMg45iqZObF8miEZt7FaA -
I'd like to ask for someone to patch a bunch of dlls for me too (from dolphin-emu.org), but since it's an actively developing project, it means you have to patch 'em with every release.
So can I have a detailed tutorial and a list of needed tools to patch them myself? -
@dmginc Thank you very much for your efforts. Unfortunately, it made no difference in trying to get the latest versions of Calibre portable to run under Windows 7. There must be something else besides Qt changes that is preventing it from launching.
-
Hi, Calibre 6.1 uses Python 3.10 which does not work on Windows 7 :-(
-
@hskoglund and @bplastos
Use the QT6 files from the link above (great work btw) and then run Calibre using this: https://github.com/vxiiduu/VxKex in Win10 compatibility for calibre.exe It should work now just fine. At least it starts for me. -
@Grdes said in Qt Creator 6.0.1 and Qt 6.2.2 running on Windows 7:
@hskoglund and @bplastos
Use the QT6 files from the link above (great work btw) and then run Calibre using this: https://github.com/vxiiduu/VxKex in Win10 compatibility for calibre.exe It should work now just fine. At least it starts for me.@Grdes - Please forgive my ignorance, but can you explain in detail, or point me to some detailed instructions, of how exactly to run Calibre using that project? And please be clear. Are you talking about running the portable version of Calibre (I hope)?
EDIT: I THINK I figured out how to install VxKex v0.0.0.2. I installed https://github.com/vxiiduu/VxKex/releases/download/Version0.0.0.2/KexSetup_x64Rel.exe. But still no success.
I installed https://download.calibre-ebook.com/6.0.0/calibre-portable-installer-6.0.0.exe, which seems to install. I replaced the Qt files with the latest patched Qt 6.3.1 files from @dmginc, then enabled VxKex for Calibre\calibre.exe and set it for Win 10 compatability. (Was that the ONLY file that needs VxKex enabled?) Again, nothing happens when I try to launch the app. Did you have to do anything to get around the Python 3.10 incompatibility issue?
EDIT2: Partial success! If I get a version of api-ms-win-core-path-l1-1-0.dll from here - https://github.com/nalexandru/api-ms-win-core-path-HACK/releases/download/0.3.1/api-ms-win-core-path-blender-0.3.1.zip - and copy it to Calibre\app\bin, then Calibre will indeed launch. But it won't do many of Calibre's functions. The eBook viewer doesn't work, it won't edit an eBook, nor will it convert to or from any of the eBook formats. I tried enabling VxKex for ALL of the Calibre exe files I could find, but no change. It launches, but doesn't really work. So a step in the right direction, but...
-
- Download normal nonportable MSI Calibre Version: 6.1.0 installer from here:
https://calibre-ebook.com/download_windows - Remove the Windows version check from the installer using SuperOrca MSI editor
https://www.pantaray.com/msi_super_orca.html
That means open the msi in SuperOrca, go to LaunchCondition and edit the Win version there or fully drop that row (right click, drop row) and save the edited msi file in SuperOrca as new file. - Install Calibre from edited installer without the win version check
- Go to the installed Calibre folder and replace there QT files with the modified files from this topic.
That means replace Qt6Core.dll and Qt6Gui.dll inside bin folder and also replace qwindows.dll inside plugins/platforms folder. - Right click calibre.exe and go the the VxKex tab. Enable here:
a) Enable VxKex for this program
b) Report a different version of Windows and set that to Windows 10 - I have also copied the dll from api-ms-win-core-path-blender-0.3.1.zip to my Windows/System32 folder in the past, so maybe this has also some effect to this.
I didn't have much time to test Calibre functions yet, but I've tried to convert some PDF to MOBI and it works for me.
edit: but yeah the ebook editor and internal ebook viewer doesn't work for me as well. Those are external exe files and it doesn't launch at all. Maybe some more QT files needs to be patched?
- Download normal nonportable MSI Calibre Version: 6.1.0 installer from here: