Qt msvc2015和Windows 7的Windows套件10

时间:2018-02-09 02:02:38

标签: c++ windows qt

我正在尝试移植我在Linux上首先开发的Qt项目。这是我第一次在Windows上构建体验,而我无法解决问题的事实可能来自一个非常明显的缺失事物。

我尝试过的Windows配置是下一个:

  • Windows 10,Qt 5.8 MSVC 2015,Windows Kit 10,Qt Creator 4.5
  • Windows 7 SP1,Qt 5.8 MSVC 2015,Windows Kit 10,Qt Creator 4.6

使用这两个配置,我获得了一个可以在主机上成功运行的可执行文件,但是当我在新安装的Windows 10上部署应用程序时,应用程序启动几秒钟然后停止(/崩溃?)。但是,错误消息,恢复对话框和事件日志都没有显示任何内容。

在新安装的Windows 7 SP1上,我收到一条错误消息,指出无法找到CreateFile2的入口点。我知道自Windows 8以来已添加此功能,但我无法理解为什么应用程序是使用这样的入口点构建的,尽管我在.pro文件中定义_WIN32_WINNT如下:

DEFINES += "_WIN32_WINNT=0x0601"

我也尝试了WINVER定义,没有成功:

DEFINES += "WINVER=0x0601"

我假设使用this git提供的依赖软件没有丢失DLL。我还尝试了“超过折旧”的Dependency Walker,它没有显示缺少的库。

提前感谢谢谢拯救我的Windows人员!

2 个答案:

答案 0 :(得分:0)

好的,我发现我的项目正在使用的一个静态库,我通过VS 2017编译的包含CreateFile2引用(使用dumpbin.exe)。我使用正确的_WIN32_WINNT值重新编译它,并且还重新编译了Qt项目。但是,CreateFile2引用仍然存在。

答案 1 :(得分:0)

最终,我发现了这个问题! 问题来自我正在建立的外部库,然后以静态模式链接到我的最终应用程序。用正确的_WIN32_WINNT重建外部库后,它工作正常! 希望这个主题能帮助像我这样的winnoob:)