C++ 在windows xp上运行VS 2012编译MFC程序

C++ 在windows xp上运行VS 2012编译MFC程序,c++,mfc,windows-xp,C++,Mfc,Windows Xp,我在Windows7上安装了VS2012。我想建立一个MFC程序,可以在WindowsXP上运行。但是,当我将exe文件移动到windows XP时,收到以下错误:“它不是有效的win32应用程序” 在互联网上探索之后,我发现我应该安装平台工具集,并将其从“Visual Studio 2012(v110)”更改为“Visual Studio 2012-Windows XP(v110_XP)”。我还将目标计算机更改为“MachineX86(/machine:X86)”。这一次,在windows X

我在Windows7上安装了VS2012。我想建立一个MFC程序,可以在WindowsXP上运行。但是,当我将exe文件移动到windows XP时,收到以下错误:“它不是有效的win32应用程序”

在互联网上探索之后,我发现我应该安装平台工具集,并将其从“Visual Studio 2012(v110)”更改为“Visual Studio 2012-Windows XP(v110_XP)”。我还将目标计算机更改为“MachineX86(/machine:X86)”。这一次,在windows XP上运行exe文件时,我收到另一个错误:“在动态库KERNEL32.dll中找不到过程入口点initializecriticalsection”

现在我不知道该怎么办:(。如果有人能帮助我,我真的很感激:)

请注意,我尝试了一个简单的对话框MFC程序,没有添加任何代码

。该链接为Update 2提供了一个解决方案(尽管是社区提供的),微软有这样一句话:

微软于2013年5月6日16:16发布

是的,这在更新3中已修复

因此,您最好回滚到更新1或等待更新3

编辑。警告:

支持声明

VisualStudio 2012更新3 RC和Team Foundation Server 2012与更新3 RC是“Give”。这意味着客户可以在生产环境中使用这些构建这些仍然是预发布的,因此可能会有一些bug将在最终版本中修复。支持从Update 3 RC升级到Update 3 RTM。为了升级到将来的版本,客户必须首先从Update 3 RC升级到Update 3 RTM

可获得更多信息


编辑2结果是…

当你尝试简单的MFC项目时,它成功了还是失败了?我甚至不知道你会在2012年冷落XP。我想这是大众的要求。您提到“请注意,我尝试了一个简单的对话框MFC程序,没有添加任何代码。”然后。。。没有什么。结果是什么,或者我们假设它是一样的?如果在将来请不要链接到二进制下载。如果必须提供链接,则应指向说明、源代码或下载页面。请确保您有XP SP3。只需将工具集设置为
v110\u xp
就足够了。我用VS2012构建了一个复杂得多的应用程序,它只需扳动开关就可以瞄准XP。工作得很有魅力。VC++博客上的一些人确实遇到了一些问题,请阅读评论:注意Daniel关于
/SUBSYSTEM:WINDOWS,5.01
的最后一篇评论。还要确保在客户端计算机上安装了正确的可再发行版本。(更新1和更新2会有所不同,它必须与VS2012的版本相同。)ta.speot.is:我有windows xp service pack 3 2002版。但还是有同样的问题。我已经将我的Visual studio 2012更新为最新版本,但仍然无法工作。尽管更新了3,仍然存在相同的问题RC@tofutim请看第一个链接。请参阅simdoc的评论和YLzhou的解决方法。可能有帮助,也可能没有帮助。