vs2012编译在win7 32位电脑和win xp电脑上运行的win32程序遇到的问题记录

时间:2023-03-08 15:32:28

一、win7 32位电脑:

vs2012编译的64位程序是没有问题的。但编译的32位程序在别的电脑(虚拟机模拟)出错:

vs2012编译在win7 32位电脑和win xp电脑上运行的win32程序遇到的问题记录

感觉很无语,vs这么牛逼的东西,在设计时候都不考虑这些吗?

在自己电脑C:\Windows\SysWOW64目录下找到msvcr110.dll,放到程序同级目录之后不再报错。

vs2012编译在win7 32位电脑和win xp电脑上运行的win32程序遇到的问题记录

二、win xp电脑

xp系统要比win 7 32位麻烦。

直接编译后运行,弹出提示框:不是有效的win32应用程序

像之前那样把msvcr110.dll复制过去依然报错:

vs2012编译在win7 32位电脑和win xp电脑上运行的win32程序遇到的问题记录

这是因为vs2012编译的win32程序用到的系统函数在xp环境上对应不上。之前转载的这篇文章讲的这个问题:http://www.cnblogs.com/rixiang/p/7918825.html

需要使用对应的平台工具集。项目右键属性,配置属性-常规-平台工具集  结果发现,只有Visual Studio 2012 (v110)这一个工具集,没有xp的工具集。

在网上查资料,发现需要update 4,之后才会有xp工具集。

VS2012 Update 4 离线安装包下载地址(ISO文件):
http://download.microsoft.com/download/D/4/8/D48D1AC2-A297-4C9E-A9D0-A218E6609F06/VSU4/VS2012.4.iso

update4之后再查看平台工具集,有了xp的工具集:

vs2012编译在win7 32位电脑和win xp电脑上运行的win32程序遇到的问题记录

使用这个工具集后编译,在xp系统运行成功。vs2012编译在win7 32位电脑和win xp电脑上运行的win32程序遇到的问题记录

普通的win32程序是这样的,如果关联到其它的库什么的,恐怕都要重新编译。

我的项目要用到mysql、htmlayout、duilib,感觉还是挺麻烦啊。

标签: CC++