QT 5.2 app cannot start (Bad allocation error) when Qt5Core.dll is in app directory

1

I have a funny problem on my machine Windows 7 x64, using QT 5.2 for the GUI

I'm not able to start the app I always receive the error

Error: Exception:"bad allocation"

First I thought I had a broken dll, so through some trial and error I found a solution: I add the QT5Core.dll via enviroment path, and NOT directly to the app folder. Then the programm works. If I copy the dll back to the app Folder, Same problem as before!?!?!?1

I'm really confused, because the error only occurs on my machine? Debugging doesn't really help, In code, the error occures here:

MyApplication::MYApplication(int argc, char** argv, int version)
: QApplication(argc, argv, version)  // <<< this call fails!
{    }

somebody can help me? Why is the location of the qt5core.dll a problem?!?!?

UPDATE

I used the profiling function of depends and found the following behaviour: Failing

GetProcAddress(0x76800000 [c:\windows\syswow64\KERNEL32.DLL], "CreateSymbolicLinkW") called from > "dirone\xxxx.EXE" at address 0x00FF2877 and returned 0x7688CCE9. First chance exception 0xE06D7363 (Microsoft C++ Exception) occurred in "c:\windows\syswow64\KERNELBASE.DLL" at address 0x765CC41F. Exception: "bad allocation"

Working

LoadLibraryW("C:\BuildPackages\QT\plugins\platforms\qwindows.dll") called from "dirtwo\QT5CORE.DLL" at address 0x66AA5154. Loaded "c:\buildpackages\qt\plugins\platforms\QWINDOWS.DLL" at address 0x0F380000. Successfully hooked module.

somehow the path to the qwindows.dll is hardcoded into the dll (there is no environment path to this directory) If I rename the qwindows.dll or delete it, startup failes again.

BUT the qwindows.dll is bundeld with our product. It is in a subdirectory ./platforms/ AND the files are the same (diff returns equal)

Somebody have some clue what I should try next?

windows
qt
asked on Stack Overflow Mar 5, 2014 by nobs • edited Mar 19, 2014 by nobs

3 Answers

3

Check if you already have some qt related environmental variables. Crashes are usually due to this, remove those envronmental variables first. Check whether you have any other qt installed libraries. it would be better if you can post the cal stacks.

answered on Stack Overflow Mar 5, 2014 by Vijith
0

Some other dlls are needed that reside in the directory of the qt5core.dll. When you add this path to the search path the dlls are found. When you simply copy the dll these dlls can not be found. You can check dependencies with the depends tool.

Candidates for the additional dlls are:

icuin51.dll and icuuc51.dll

answered on Stack Overflow Mar 5, 2014 by David Feurle
0

Found the Problem: The enviromentvariable:

QT_QPA_PLATFORM_PLUGIN_PATH=C:\BuildPackages\QT\plugins\platforms

was set to the path. If removing this variable, everything works as it should!

answered on Stack Overflow Mar 19, 2014 by nobs

User contributions licensed under CC BY-SA 3.0