我使用在Windows 8.1上运行的visual studio 2010 该程序使用C ++并使用MFC库
当我在运行Windows 8的计算机上编译它,然后我在运行Windows 7的目标计算机上运行它时,程序意外停止。
如何专门为Windows 7编译它
答案 0 :(得分:0)
如果不使用较新的SDK,则没有特殊的开关可以设置为Windows 7编译程序。
阅读[MSDN][1]
即使您使用较新的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)
这可能是问题所在。经过测试,我将确认答案