用VS2013在win7下编写的C++程序怎么在XP下运行?
2014-10-15 13:34
288 查看
参考文章:
/article/7834426.html
额外说明:(1)程序必须为Dotnet 4.0及以下版本。(XP只支持Dotnet4.0及以下版本,不支持Dotnet 4.5)
(2)用C#编写的程序,无需进行如下设置,只要在目标机的xp中安装相应的Dotnet版本即可。
用VS2013在win7下编写的C++程序在XP下运行的错误与解决。
1.在xp下运行报错为:“不是有效的win32应用程序。”
解决方法:
【配置属性】-【常规】-【平台工具集】,选择“VisualStudio 2013 (v120 XP)”。
注意:C#编写的程序没有该选项,如何解决C#的程序在XP下的运行,待解决。
2.将原动态编译改为静态编译,否则报错为:未找到MSVCR120D.DLL“
解决方法:
【配置属性】-【C/C++】-【代码生成】-【基本运行时库】,
由默认的“多线程调试DLL(/MDd)”,改成“多线程 (/MT)”,确定之后,重新编译。
注意:网上说这一步需要根据你的当前工程属性Debug还是Release来选择“Multi-threadedDebug (/MTd)”或者“Multi-threaded (/MT)”,但我不论在debug还是release模式下,均选择“多线程/MT”,均能正常运行。
关于静态链接库的文章:
/article/5630454.html
3.【配置属性】-【常规】-【使用MFC】,选择“Use MFC in a Static Library”(非MFC程序可无视)。
注意:我改了这一步后,编译报错,原因未知。
只要做前面1,2步,即可在XP下运行。
4.将你的工程中依赖的所有外部库,都按照步骤1~3重新编译。
注意第四步很重要。如果你只完成了前三步,编译工程发现一大堆link错误,那就是你第四步没有做完整的原因了。
一个项目使用的库中如果存在不同版本的基本运行时库,必然导致冲突。
如果你用到的第三方库没有源码,而且又不是用MTD或MT编译的,很可能你就悲剧了。
5、网上说是还需在以下方面修改,未测试:
原文说:
项目菜单->项目属性->链接器->系统->子系统->控制台或窗口windows(根据你的项目类型选择),第二项版本号设成5.01。
/article/7834426.html
额外说明:(1)程序必须为Dotnet 4.0及以下版本。(XP只支持Dotnet4.0及以下版本,不支持Dotnet 4.5)
(2)用C#编写的程序,无需进行如下设置,只要在目标机的xp中安装相应的Dotnet版本即可。
用VS2013在win7下编写的C++程序在XP下运行的错误与解决。
1.在xp下运行报错为:“不是有效的win32应用程序。”
解决方法:
【配置属性】-【常规】-【平台工具集】,选择“VisualStudio 2013 (v120 XP)”。
注意:C#编写的程序没有该选项,如何解决C#的程序在XP下的运行,待解决。
2.将原动态编译改为静态编译,否则报错为:未找到MSVCR120D.DLL“
解决方法:
【配置属性】-【C/C++】-【代码生成】-【基本运行时库】,
由默认的“多线程调试DLL(/MDd)”,改成“多线程 (/MT)”,确定之后,重新编译。
注意:网上说这一步需要根据你的当前工程属性Debug还是Release来选择“Multi-threadedDebug (/MTd)”或者“Multi-threaded (/MT)”,但我不论在debug还是release模式下,均选择“多线程/MT”,均能正常运行。
关于静态链接库的文章:
/article/5630454.html
3.【配置属性】-【常规】-【使用MFC】,选择“Use MFC in a Static Library”(非MFC程序可无视)。
注意:我改了这一步后,编译报错,原因未知。
只要做前面1,2步,即可在XP下运行。
4.将你的工程中依赖的所有外部库,都按照步骤1~3重新编译。
注意第四步很重要。如果你只完成了前三步,编译工程发现一大堆link错误,那就是你第四步没有做完整的原因了。
一个项目使用的库中如果存在不同版本的基本运行时库,必然导致冲突。
如果你用到的第三方库没有源码,而且又不是用MTD或MT编译的,很可能你就悲剧了。
5、网上说是还需在以下方面修改,未测试:
原文说:
项目菜单->项目属性->链接器->系统->子系统->控制台或窗口windows(根据你的项目类型选择),第二项版本号设成5.01。
相关文章推荐
- 用VS2013在win7下编写的C++程序怎么在XP下运行?
- 用VS2012或VS2013在win7下编写的程序在XP下运行就出现“不是有效的win32应用程序
- 用VS2012或VS2013在win7下编写的程序在XP下运行就出现“不是有效的win32应用程序
- 用VS2012或VS2013在win7下编写的程序在XP下运行就出现“不是有效的win32应用程序
- 用VS2012或VS2013在win7下编写的程序在XP下运行就出现“不是有效的win32应用程序
- 用VS2012或VS2013在win7下编写的程序在XP下运行就出现“不是有效的win32应用程序
- 用VS2012或VS2013在win7下编写的程序在XP下运行就出现“不是有效的win32应用程序
- (转载)用VS2012或VS2013在win7下编写的程序在XP下运行就出现“不是有效的win32应用程序“
- 用VS2012或VS2013在win7下编写的程序在XP下运行就出现“不是有效的win32应用程序
- 用VS2012或VS2013在win7下编写的程序在XP下运行就出现“不是有效的win32应用程序
- 用VS2012或VS2013在win7下编写的程序在XP下运行就出现“不是有效的win32应用程序
- 用VS2012 VS2013编写的程序无法再xp运行的解决方法
- Win7下使用VS2013编写的ActvieX在XP下注册提示:LoadLibrary("XXX.dll")失败-找不到指定的程序
- 让用VS2013编写的程序在XP中顺利运行
- 用VS2012 VS2013编写的程序无法再xp运行的解决方法
- Win7下使用VS2013编写的ActvieX在XP下注册提示:LoadLibrary("XXX.dll")失败-找不到指定的程序
- win7 64位系统使用VS2013编写MySQL代码
- 如何解决在Win7,VS2012环境中生成的c++程序在XP上提示“XXXX.exe不是有效的Win32应用程序”的问题
- vs2012-vs2013编译出来的程序不能在xp上运行解决方法
- vs2012-vs2013编译出来的程序不能在xp上运行解决方法