Important: Please read the Qt Code of Conduct -

[SOLVED] Problem with release

  • Hi,

    I finished my application. It is debugged on win 7. However, when I try it on win xp, the Icons (copy, cut, paste, etc) do not show up and some function makes the app crash.

    I tried to compile the application on win 7, and I found something! When I installed the msvc2008 and msvc2010 on the other computer... the program compiled with win 7 started to work completely.

    I think that my problem is that I need some sort of installer to installer the libraries along with the program on win xp. Where do I begin with that?

    thanks for your help

  • With some 3rd party installer software, like inno setup, setup factory, installshield, ..., google will give plenty more :)

  • Ok.. thanks guys... I will try that!

  • How do I know what are the required libraries? I mean which ones?

  • Thanks... it is of great help!

  • When I run my app on windows xp, the icons on the toolbar do not show and when I click on of the buttons... the app crash.

    Windows generate a debug report which is an xml file.. how do I identify the missing dll from that?

  • Moderators

    Missing icons usually mean missing image format plugin like qico4.dll. those should be placed in <your app dir>\imageformats<plugin name>.dll.
    Dependency walker does not show dynamically loaded libraries (plugins) by default. You need to use the "profile" feature for that.

    App crashing is not something I would suspect Qt of and is not caused by missing dll. It's more likely a bug in your code, eg. trying to do something with icon without checking if it actually loaded.

  • Ok.. you are right.

    When I do profile, on a computer where it works, I get Dependency Walker to output

    @LoadLibraryW("C:\QtSDK\Desktop\Qt\4.8.1\msvc2010\plugins\iconengines\qsvgicon4.dll") called from "QTCORE4.DLL" at address 0x670ECF66.
    Loaded "QSVGICON4.DLL" at address 0x10000000. Successfully hooked module.
    Unloaded "QSVGICON4.DLL" at address 0x10000000.@

    However, when I add the dll in the Files section in Inno like so...
    @Source: "C:\QtSDK\Desktop\Qt\4.8.1\msvc2010\plugins\iconengines\qsvgicon4.dll"; DestDir: "{app}";@

    and install in a "virgin" computer, Dependency Walker jump to the next dll (without any error showing)
    @LoadLibraryW("C:\WINDOWS\system32\gdi32.dll") called from "QTCORE4.DLL" at address 0x670EDA6E.
    LoadLibraryW("C:\WINDOWS\system32\gdi32.dll") returned 0x77F10000.
    GetProcAddress(0x77F10000 [GDI32.DLL], "GetCharWidthI") called from "QTGUI4.DLL" at address 0x65253C78 and returned 0x77F3DF75.
    LoadLibraryW("C:\WINDOWS\system32\wintab32.dll") called from "QTCORE4.DLL" at address 0x670EDA6E.@

  • Do I NEED to put them into a different folder ? \imageformats\

  • Moderators

    Basically you should put them in a structure that is below the "plugins" directory in your Qt installation, so if DW shows you "C:\QtSDK\Desktop\Qt\4.8.1\msvc2010\plugins\iconengines\qsvgicon4.dll" you should put it in <app dir>\iconengines\qsvgicon4.dll. In inno this would be "{app}\iconengines" I think.

  • It works perfectly.. thank you!

Log in to reply