The procedure entry point CancelIoEx could not be located in the dynamic link library KERNEL32.dll



  • Using Qt 5.8.0 with MinGW_32 to compile app on a Win7 VM.

    I understand that 5.8.0 cannot be used with XP as the development OS.

    However, I was told..before I purchased the Qt Commercial version..that an app compiled with a 32 bit version of Qt 5.8.0 would run on Win7 and XP.

    This makes it appear that XP is not, and will not, be supported at all.
    QTBUG-58407: https://bugreports.qt.io/browse/QTBUG-58407

    The error message above is from an install on an XP box. The same install and app works fine when run on a Win7 computer.

    Is there a Qt compile or make flag that can be set to make this work on XP?

    I have found the following "hacks" to make the app work on XP.
    http://www.tripleboot.org/?p=423

    I tried this suggestion..
    win32 {
    QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWS,5.01
    }
    ..which caused
    :-1: error: error: /SUBSYSTEM:WINDOWS,5.01: No such file or directory

    I suspect that this is because I do not have Visual Studio on the Win7 VM.

    I also found this..

    http://stackoverflow.com/questions/28181940/64-bit-qt-application-crashes-on-xp-64-bit-but-not-on-win7-64-bit#28393832

    ADD_CUSTOM_COMMAND(
    TARGET my_target
    POST_BUILD
    COMMAND editbin my_target.exe /SUBSYSTEM:WINDOWS,5.01 /OSVERSION:5.1)

    ..but it requires editbin.exe which is also part of Visual Studio..and I have not found a source for just an editbin.exe download. Downloading and installing VS just to get a single exe seems pretty silly.



  • Hi, setting the /SUBSYSTEM:WINDOWS,5.01 is not possible for MinGW_32 but it is also not needed, it is already set for you automatically to /SUBSYSTEM:WINDOWS,4 which means you can run your MinGW_32 .exe also on WIndows NT 4 and Windows 2000.

    The problem is that starting with Qt 5.8.0 the classes QWindowsPipeReader and QWindowsPipeWriter in Q5Core.dll uses CancelIOEx and that API is not available on Windows XP.

    If you don't use those classes perhaps it's possible to patch them, easiest would be to binary edit the IAT in Qt 5.8.0's Qt5Core.dll, but maybe there are more errors like this waiting in another Qt dll...


  • Moderators

    @PSI_lbc If you have a commercial license then you can ask Qt Company for support or maybe reopen the bug.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.