我查看了所有与堆栈溢出相关的问题,但没有一个解决方案对我有帮助.
我正在使用此设置构建Qt应用程序:
configure -developer-build -debug-and-release -opensource -nomake examples -nomake tests -platform win32-msvc2012 -no-openglQMAKE_CXX += /D_USING_V110_SDK71_我可以在我的开发机器上构建和运行我的程序(如上所述); 我也可以在dev机器上的Program Files目录下安装和运行包.
当我在Windows Vista计算机上安装并运行时(多台计算机)
(在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) 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?
我正在尝试为以下问题找到解决方案:
我有许多程序(让我们称之为奴隶)都依赖于一个程序(主程序).我需要为每个奴隶分发一个安装程序.此安装程序需要安装主服务器.
我希望能够对这两个部分进行版本控制,因此多个msi似乎是正确的解决方案,与引导程序链接.
我的问题是如果从属安装程序安装了已安装的主服务器的相同版本,.msi将以修复/删除模式运行.
从用户的角度来看,这是不可接受的,只会引起混淆.
在尝试运行msi之前,有没有办法检查当前安装的fiels的版本?
我目前正在使用WIX的setupbld.exe作为引导程序.
任何其他解决方案非常感谢(我也尝试合并模块没有成功,因为版本控制是无用的)
我正在尝试使用嵌套的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&'
我确信它的东西很简单,我忽略了,或者可能有一个简单的解决方案让我望而却步.任何帮助非常感谢.