問題描述:
用VC2013編譯了一個程序,在Windows 8、Windows 7(64位、32位)下都能正常運行。但在Win XP,Win2003下運行時,卻報錯不能運行,具體錯誤信息為“指定的可執行文件不是有效的 Win32 應用程序”。
用VS2012或VS2013在win7下編寫的程序在XP下運行就出現“不是有效的win32應用程序
問題分析:
用eXeScope打開該exe,發現操作系統需求為“6.0”,即只能在Windows Vista或更高的操作系統下運行。
解決方法:
解決方法1:
鏈接器->系統->子系統->控制台或windows 后面的”最低版本“是5.01
解決辦法2:
1.用VC2013打開項目源代碼,選中項目,然后右鍵菜單里點屬性打開項目屬性對話框;
2.在左側樹列表里選擇 配置屬性->常規,然后在右側列表的“平台工具集”選中“Visual Studio 2013 – Windows XP (v120_xp)”,再點擊確認。
改好后重新編譯,就能正常運行了。
此時再用eXeScope打開該exe,發現操作系統需求為“5.1”,即能在Windows XP或更高的操作系統下運行。
參考微軟的解釋
http://msdn.microsoft.com/zh-SG/library/jj851139.aspx
解決辦法3:
1.下載安裝升級包http://www.microsoft.com/zh-cn/download/details.aspx?id=39305
2.可以通過如下的操作實現:
1).在“Solution Explorer”中選中項目,然后右鍵菜單里點屬性。
2).在Property Pages里選擇Configuation Properties,選擇General,然后在Platform Toolset里選中Visual Studio 2012 – Windows XP (v110_xp)即可。
這種方法的具體說明可參考: