Qt 5.6.2 发布, C++跨平台界面库

Qt 5.6.2 发布了。Qt
是开源跨平台C++语言界面框架库,一套代码,多平台编译:linux、macOS、windows、iOS以及android。

一.直接使用VS2012/VS2013/VS2015生成XP兼容的可执行程序

此次更新内容如下:

Visual
Studio刚发布时没打补丁,称为RTM版,之后会陆续发布补丁,进行bug修复和功能增强。VS2010及之前版本的补丁为Service
Pack,VS2012及之后版本的补丁称为Update。这些补丁都是向下兼容的,比如说打了Update2补丁,就不需要再打Update1补丁了。

澳门新葡亰,Qt5.6.2主要是对前一个版本的补丁,包括900多处,这些补丁同时修补到5.7.1,和快发布的Qt5.8.0版本中。Qt5.6是一个LTS版本,主要用来兼容以前的Qt版本。C++11的很多新特性以及新的编程技术概念,主要在未来的Qt5.8版本中体现,Qt5.8不在兼容C++98,转而全面支持C++11语言新特性。

微软官网上现在只能搜索到VS2010 Service
Pack1,从该补丁的系统要求可以看出VS2010支持XP、Vista和Win7,但是不支持Win8和Win10。因此用VS2010生成的可执行程序能直接在XP上运行。

Qt 5.6.2下载地址: 

澳门新葡亰 1

转自:    

再来搜索一下VS2012,这里以旗舰版为例,从它的系统要求可以看出VS2012支持Win7和Win8,但是不支持XP和Win10。

澳门新葡亰 2

VS2013、VS2015和VS2017的系统要求信息这里统一展示了出来,不用再去搜索了。VS2013也只支持Win7和Win8。从VS2015开始新增加了对Win10的支持。为防止网页失效,还是截个图吧。

澳门新葡亰 3澳门新葡亰 4澳门新葡亰 5

也就是说理论上从VS2012开始,生成的可执行文件就不能再XP上运行了。但是由于XP用户量依然很大,微软在发布了VS2012
RTM没多久,就紧接着发布了Update1补丁,该补丁重要的改进有两处,一是在平台工具集里添加了支持生成运行于XP的选项;二是添加了对C++11特性的支持。

如何查看Visual Studio是否打了补丁,方法很简单,点击菜单“帮助”——>“关于
Microsoft Visual
Studio”,如下图所示,从图中可以看出我的VS2012是打过Update1补丁的。

澳门新葡亰 6

新建一个基于对话框的MFC工程,名为MFCApplication,然后进行如下设置。

澳门新葡亰 7

澳门新葡亰 8

这样生成的MFCApplication.exe放到XP中,双击直接可以运行,不需要任何依赖,如下图所示。

澳门新葡亰 9

注意“所需最低版本”一定要设置为5.01,如果设置为5.0会提示错误“LNK4010:子系统版本号5.0无效;假定为默认子系统版本”,如下图所示。

澳门新葡亰 10

这里的默认子系统版本就是说,生成的可执行程序只能在VS2012默认支持的系统上运行,也就是Win7和Win8。如果设置为5.02或者其他值,虽然没这个提示了,但是依然会假定为默认子系统版本,放到XP上运行会依然会提示“不是有效的Win32应用程序”,如下图所示。

澳门新葡亰 11

至于为何要设置为5.01,可以参考以下两篇博客:

修改WINVER、_WIN32_WINNT和_MSC_VER 

Window系统内核版本号及其查看方法

简单的说就是5.01表示系统内核版本号,如果直接查看的话,会发现XP的内核版本号是5.1,但是Windows系统头文件中却将XP的内核版本号定义为0x0501,因此这里用的是5.01,而不是5.1。

网站地图xml地图