本文介绍了应用程序无法启动,因为它无法找到或加载QT平台插件“窗口”的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经查看了所有与堆栈溢出相关的问题,但没有任何解决方案可以帮助我。



我正在构建一个Qt应用程序使用此设置:




  • Windows 7 Professional x64

  • Visual Studio 2012

  • Qt 5.2.0使用构建配置-developer-build -debug-and-release -opensource -nomake示例-nomake tests -platform win32-msvc2012 -no-opengl

  • 项目使用QtSingleApplication(qt-solutions)

  • 应用程序是32位应用程序

  • qmake使用以下命令运行:-makefile -spec win32-msvc2012

  • .pri使用 QMAKE_CXX + = / D_USING_V110_SDK71 _



我可以在我的开发机上构建和运行我的程序(如上所述);



当我在Windows Vista计算机(多台计算机)上安装和运行




  • 安装了VC ++ redist 2012 11.0.61030.0

  • 安装了VC ++ redist 2010 10.0.40219

  • 加上2005,redist的2008版本



(在Windows 7的干净安装上也会失败)



我得到:



应用程序无法启动,因为无法找到或加载QT平台插件



所以我按照说明,添加了一个.platforms /目录,并添加了qwindows.dll(也添加了qminimal.dll和qoffscreen。 dll);我也添加了libEGL.dll,libGLESv2.dll(即使我不应该需要他们我不认为)



一旦我添加了qoffscreen.dll我现在得到附加消息:可用的平台插件是:offscreen



如果我运行Dependency Walker, />

 从地址0x6AC6FDFA处的MSVCR110.DLL调用GetProcAddress(0x76CA0000 [KERNEL32.DLL],GetCurrentPackageId),并返回NULL。错误:找不到指定的过程(127)。 

,然后进一步下载:



<$从地址0x745FFBF8处的COMCTL32.DLL调用并返回0x745AE18C的P $ p> GetProcAddress(0x745A0000 [UXTHEME.DLL],BufferedPaintUnInit)。
此应用程序无法启动,因为它无法找到或加载Qt平台插件窗口。

可用的平台插件有:offscreen。

重新安装应用程序可能会解决这个问题。

有任何想法如何解决此dll问题?

解决方案

我解决了我的问题,虽然我不知道有什么区别是:



我的qt目录下载到我的应用程序目录的./和./platforms中。



应用程序遇到错误,然后崩溃。



VERSION.dll导致崩溃(在依赖者步行者中注明),因此我从两个地方删除它。



应用程序启动,我系统地删除了所有不需要的dll。



这让我回到了原来的状态。



然后卸载我的应用程序并重新安装(只有./platforms/qwindows.dll文件剩余),应用程序可以正常工作。



所以我可以假设在platforms目录中有一个不正确的qwindows.dll版本。


I have looked through all of the questions that appear to be related on stack overflow, and none of the solutions seem to help me.

I am building a Qt application with this setup:

  • Windows 7 Professional x64
  • Visual Studio 2012
  • Qt 5.2.0 built with configure -developer-build -debug-and-release -opensource -nomake examples -nomake tests -platform win32-msvc2012 -no-opengl
  • Project uses QtSingleApplication (qt-solutions)
  • Application is a 32 bit application
  • qmake run with the following: -makefile -spec win32-msvc2012
  • .pri uses QMAKE_CXX += /D_USING_V110_SDK71_

I can build and run my program fine on my development machine (noted above); I can also install and run the package from Program Files directory on dev machine.

When I install and run on a Windows Vista machine (multiple machines)

  • VC++ redist 2012 11.0.61030.0 installed
  • VC++ redist 2010 10.0.40219 installed
  • plus 2005, 2008 versions of redist

(also fails on a clean install of Windows 7)

I get:

Application failed to start because it could not find or load the QT platform plugin "windows"

So I followed the instructions and added a .platforms/ directory, and added qwindows.dll (also added qminimal.dll and qoffscreen.dll); I also added libEGL.dll, libGLESv2.dll (even though I shouldn't need them I don't think)

Once I added qoffscreen.dll I now get the additional message: Available platform plugins are: offscreen

If I run through Dependency Walker I get this error listed:

GetProcAddress(0x76CA0000 [KERNEL32.DLL], "GetCurrentPackageId") called from "MSVCR110.DLL" at address 0x6AC6FDFA and returned NULL. Error: The specified procedure could not be found (127).

and then further down get the:

GetProcAddress(0x745A0000 [UXTHEME.DLL], "BufferedPaintUnInit") called from "COMCTL32.DLL" at address 0x745FFBF8 and returned 0x745AE18C.
This application failed to start because it could not find or load the Qt platform plugin "windows".

Available platform plugins are: offscreen.

Reinstalling the application may fix this problem.

Any ideas how to fix this dll issue?

解决方案

Well I solved my issue, although I'm not sure what the difference is:

I copied every dll from my qt directory into both ./ and ./platforms of my application directory.

The application got past the error, but then crashed.

VERSION.dll was causing the crash (noted in dependency walker), so I removed it from both places.

The Application started up, so I systematically removed all unneeded dll's.

This got me back to the same state I had originally.

I then uninstalled my application and re-installed (with only the ./platforms/qwindows.dll file remaining), application works correctly.

So all I can assume is that I had an incorrect version of qwindows.dll in the platforms directory.

这篇关于应用程序无法启动,因为它无法找到或加载QT平台插件“窗口”的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-28 05:00