小编gol*_*log的帖子

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

我查看了所有与堆栈溢出相关的问题,但没有一个解决方案对我有帮助.

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

  • Windows 7专业版x64
  • Visual Studio 2012
  • Qt 5.2.0内置 configure -developer-build -debug-and-release -opensource -nomake examples -nomake tests -platform win32-msvc2012 -no-opengl
  • 项目使用QtSingleApplication(qt-solutions)
  • 应用程序是一个32位应用程序
  • qmake使用以下命令运行:-makefile -spec win32-msvc2012
  • .pri使用 QMAKE_CXX += /D_USING_V110_SDK71_

我可以在我的开发机器上构建和运行我的程序(如上所述); 我也可以在dev机器上的Program Files目录下安装和运行包.

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

  • 安装VC++ redist 2012 11.0.61030.0
  • 安装VC++ redist 2010 10.0.40219
  • 加上2005年,2008版的redist

(在Windows 7的全新安装上也失败了)

我明白了:

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

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

一旦我添加了qoffscreen.dll,我现在得到了额外的消息: Available platform plugins are: offscreen

如果我通过Dependency Walker运行,我会列出以下错误:

GetProcAddress(0x76CA0000 [KERNEL32.DLL], "GetCurrentPackageId") called from "MSVCR110.DLL" at …
Run Code Online (Sandbox Code Playgroud)

c++ dll qt platform

27
推荐指数
5
解决办法
6万
查看次数

QDir.setNameFilter如何只显示具有特定扩展名的文件?

setNameFilters没有按照我的预期工作,所以如果有人能解释我是否错误地使用它,或者这可能是Qt中的错误:

这是我的代码示例:

QDir export_folder("C:\path");
QStringList fileList = export_folder.setNameFilters(QStringList()<<"*.exe");
Run Code Online (Sandbox Code Playgroud)

处理完后,fileList包含字符串"test.exe1"

我希望fileList只包含扩展名为.exe NOT .exe*的文件.

如果我希望文件扩展名长于.exe,我希望将其"*.exe*"作为我的过滤器.

有人可以帮助澄清,还是我事后必须手动处理我的fileList?

c++ qt filter qdir

14
推荐指数
1
解决办法
2万
查看次数

Bootstrapper:在运行之前检查是否安装了msi版本

我正在尝试为以下问题找到解决方案:

我有许多程序(让我们称之为奴隶)都依赖于一个程序(主程序).我需要为每个奴隶分发一个安装程序.此安装程序需要安装主服务器.

我希望能够对这两个部分进行版本控制,因此多个msi似乎是正确的解决方案,与引导程序链接.

我的问题是如果从属安装程序安装了已安装的主服务器的相同版本,.msi将以修复/删除模式运行.

从用户的角度来看,这是不可接受的,只会引起混淆.

在尝试运行msi之前,有没有办法检查当前安装的fiels的版本?

我目前正在使用WIX的setupbld.exe作为引导程序.

任何其他解决方案非常感谢(我也尝试合并模块没有成功,因为版本控制是无用的)

windows-installer wix bootstrapper merge-module

5
推荐指数
1
解决办法
3385
查看次数

嵌套的QMap和QList不允许我追加/ push_back

我正在尝试使用嵌套的QList:

QMap<int, QMap<QString, QList<int> > > teamGames;
for (int team1 = 1; team1 <= TOTAL_TEAMS; ++team1) {
    QMap<QString,QList<int>> games;
    teamGames[team1]=games;
    QList<int> home;
    QList<int> away;

    games["home"] = home;
    games["away"] = away;
}

teamGames.value(1).value("home").push_back(1);
Run Code Online (Sandbox Code Playgroud)

当我编译时我得到:1>.\ main.cpp(154):错误C2662:'QList :: push_back':无法将'this'指针从'const QList'转换为'QList&'

我确信它的东西很简单,我忽略了,或者可能有一个简单的解决方案让我望而却步.任何帮助非常感谢.

qt qlist qmap

2
推荐指数
1
解决办法
3321
查看次数

标签 统计

qt ×3

c++ ×2

bootstrapper ×1

dll ×1

filter ×1

merge-module ×1

platform ×1

qdir ×1

qlist ×1

qmap ×1

windows-installer ×1

wix ×1