我在Windows 7 x64计算机上遇到一个有趣的问题,使用QT 5.2作为GUI
我无法启动应用程序,我总是收到错误消息
首先,我认为自己的dll损坏了,因此通过反复试验,我找到了一个解决方案:我通过环境路径添加QT5Core.dll,而不是直接将其添加到app文件夹中。然后,程序开始工作。如果我将dll复制回应用程序文件夹,则与以前相同的问题!?!?!?1
我真的很困惑,因为错误仅发生在我的机器上?调试并没有真正的帮助,在代码中,错误发生在这里:
MyApplication::MYApplication(int argc, char** argv, int version)
: QApplication(argc, argv, version) // <<< this call fails!
{ }
有人可以帮助我吗?为什么qt5core.dll的位置有问题?!?!?
更新
我使用了depends的性能分析功能,并发现以下行为:失败
GetProcAddress(0x76800000 [c:\ windows \ syswow64 \ KERNEL32.DLL],“ CreateSymbolicLinkW”)从>“ dirone \ xxxx.EXE”在地址0x00FF2877处调用,并返回0x7688CCE9。第一次机会异常0xE06D7363(Microsoft C ++异常)发生在地址为0x765CC41F的“ c:\ windows \ syswow64 \ KERNELBASE.DLL”中。例外:“分配错误”
在职的
从地址为0x66AA5154的“ dirtwo \ QT5CORE.DLL”中调用的LoadLibraryW(“ C:\ BuildPackages \ QT \ plugins \ platforms \ qwindows.dll”)。在地址0x0F380000处加载了“ c:\ buildpackages \ qt \ plugins \ platforms \ QWINDOWS.DLL”。成功挂接模块。
以某种方式将qwindows.dll的路径硬编码到dll中(此目录没有环境路径)。如果我重命名qwindows.dll或将其删除,启动将再次失败。
但是qwindows.dll与我们的产品捆绑在一起。它在子目录./platforms/中,并且文件相同(差异返回相等)
有人知道下一步我应该尝试什么?
发现问题:环境变量:
QT_QPA_PLATFORM_PLUGIN_PATH=C:\BuildPackages\QT\plugins\platforms
被设置为路径。如果删除此变量,一切都会正常进行!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句