使用在windows8上运行的VS2010编译C ++程序以在Windows 7上运行

时间:2014-06-11 05:22:46

标签: mfc compilation window

我使用在Windows 8.1上运行的visual studio 2010 该程序使用C ++并使用MFC库

当我在运行Windows 8的计算机上编译它,然后我在运行Windows 7的目标计算机上运行它时,程序意外停止。

如何专门为Windows 7编译它

4 个答案:

答案 0 :(得分:0)

如果不使用较新的SDK,则没有特殊的开关可以设置为Windows 7编译程序。

阅读[MSDN][1]

中有关头文件的SDK版本和设置

即使您使用较新的SDK并且它是标准的MFC程序,在Windows 7下使用它也不会有问题。在99%的情况下使用较新的SDK(具有不兼容的编译器设置)并在不兼容(较旧)的操作系统上运行该程序,该程序将无法启动。在这种情况下,无法找到新功能的一些DLL入口点。

如果程序停止无法执行,则应使用远程调试来查找错误。或使用minidumps进行事后分析。我相信你的程序中有一个错误。它在Windows 8上运行可能只是运气。

答案 1 :(得分:0)

检查项目中WINVER和/或_WIN32_WINNT的值是#define d为0x0602还是更高 - 请参阅this MSDN article以获取可能的值列表

答案 2 :(得分:0)

可能是Windows 7计算机上没有运行时库的问题。这可以防止程序以非直观的错误消息启动。

在这种情况下,您可以在Windows 7计算机上安装Visual C ++ 2010 Redistributable Package,看看是否有帮助。或者,您可以将运行时库DLL文件部署在与.exe。

相同的目录中

答案 3 :(得分:0)

我的解决方案中有一个dll项目项目,其中未定义目标操作系统版本。

甚至有以下警告:

_WIN32_WINNT not defined. Defaulting to _WIN32_WINNT_MAXVER (see WinSDKVer.h)

这可能是问题所在。经过测试,我将确认答案