默认情况下,你的VS2012工程发布后,在XP下运行会出现提示“not a valid win32 application”。

微软推出了Visual Studio 2012 update 1可以支持发布到XP平台,这个更新好像只能在线安装,比较麻烦.

然而就算你打了补丁,你的程序在XP下可能还会出现

“无法定位程序输入点 FlushProcessWriteBuffers 于动态链接库 KERNEL32.dll 上”

这样的错误提示。见http://bbs.csdn.net/topics/390313776

这是因为要把工程发布为静态库才能具有“跨平台”的属性。

安装完毕Visual Studio 2012 update 1后,对工程做如下设置(笔者以MFC程序为例说明):

1.【配置属性】-【常规】-【平台工具集】,选择“Visual Studio 2012 (v110 XP)”(不打补丁没有该选项)。

2.【配置属性】-【常规】-【使用MFC】,选择“Use MFC in a Static Library”(非MFC程序可无视)。

3.【配置属性】-【C/C++】-【代码生成】-【基本运行时库】,

根据你的当前工程属性Debug还是Release来选择“Multi-threaded Debug (/MTd)”或者“Multi-threaded (/MT)”。

要了解更多基本运行时库的知识,参见

http://www.cnblogs.com/eddyshn/archive/2009/11/23/1608823.html

4.将你的工程中依赖的所有外部库,都按照步骤1~3重新编译

注意第四步很重要。如果你只完成了前三步,编译工程发现一大堆link错误,那就是你第四步没有做完整的原因了。

一个项目使用的库中如果存在不同版本的基本运行时库,必然导致冲突。

如果你用到的第三方库没有源码,而且又不是用MTD或MT编译的,很可能你就悲剧了。

参考资料:

http://www.cnbeta.com/articles/194853.htm

http://blog.163.com/f_jinyi/blog/static/311803152009112935449972/

http://blog.csdn.net/lsldd/article/details/8821063

VS2012发布到XP平台的更多相关文章

  1. VS2012中使用CEGUI项目发布到XP平台的问题(核心方法就一句话。“你项目使用的所有外部依赖库都用/MT编译。”)

    接着上一篇文章,详细说说如何把一个带CEGUI的项目发布到XP平台. 这个问题纠缠了我好几天.这里把详细解决思路记下来.有同样问题的朋友可以少走很多弯路. 核心方法就一句话.“你项目使用的所有外部依赖 ...

  2. NCache:最新发布的.NET平台分布式缓存系统

    NCache:最新发布的.NET平台分布式缓存系统在等待Microsoft完成Velocity这个.NET平台下的分布式内存缓存系统的过程中,现在让我们将目光暂时投向其他已经有所建树的软件开发商.Al ...

  3. 使用VS中自带的一键打包功能将我们的ASP.NET Core类库打包并将程序包(类库)发布到NuGet平台上进行管理

    本章将和大家简单分享下如何使用VS中自带的一键打包功能将我们的ASP.NET Core类库打包并将程序包(类库)发布到NuGet平台上进行管理. 一.注册并登录NuGet平台 NuGet官网:http ...

  4. vs2012 .netFramwork2.0发布到xp

    开发环境 windows server2008R2 VS2012  .net Framwork2.0 开发的winform程序 在有的xp系统下不能运行 选择 项目属性=>编译 Build=&g ...

  5. 《转》VS2012发布网站详细步骤

    本文转载自MannyGuo 如果给您带来不便请联系博主 1.打开你的VS2012网站项目,右键点击项目>菜单中 重新生成一下网站项目:再次点击右键>发布: 2.弹出网站发布设置面板,点击& ...

  6. VS2012发布网站详细步骤

    1.打开你的VS2012网站项目,右键点击项目>菜单中 重新生成一下网站项目:再次点击右键>发布: 2.弹出网站发布设置面板,点击<新建..>,创建新的发布配置文件: 输入你自 ...

  7. 【转】VS2012发布网站详细步骤

    1.打开你的VS2012网站项目,右键点击项目>菜单中 重新生成一下网站项目:再次点击右键>发布: 2.弹出网站发布设置面板,点击<新建..>,创建新的发布配置文件: 输入你自 ...

  8. 在windows xp 平台上安装mvc4失败

    使用web 平台安装程序,在windows xp上安装mvc4 出现失败,需要主要是windows powershell 2.0安装失败,需要先卸载power shell 1.0或者 winowrm ...

  9. 一键打包并发布到Nuget平台

    目标是只要执行一个命令就自动发布新版本到nuget平台 第一步在nuget官网注册一个账号 会有一个APIKEY 如下图   在工程里面添加一个Gruntfile.js 然后copy以下代码 在vs里 ...

随机推荐

  1. 【C++竞赛 G】Lines

    Time Limit: 3s Memory Limit: 64MB 问题描述 Ljr has several lines. The lines are covered on the X axis. L ...

  2. ios开发利用AFN检测网络状态

    AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager]; [manager setRe ...

  3. Android JNI -基础篇

    JNI(Java Native Interface,JAVA本地接口) 可以使Java代码和其他语言写的代码(如C/C++代码)进行交互.为什么要进行交互? 首先,Java语言提供的类库无法满足要求, ...

  4. 断言(Assert)与异常(Exception)

    ## 断言和异常 断言是用来检查非法情况而不是错误情况的,用来帮开发者快速定位问题的位置. 异常处理用于对程序发生异常情况的处理,增强程序的健壮性和容错性. ## 断言的使用 在防御式编程中经常会用断 ...

  5. 十年磨一剑 Delphi再写传奇(不争辩,不解释,十年坚持不懈的努力)

    新年伊始,英巴卡迪诺公司(Embarcadero)就在其官网发布了“激动人心的RAD Studio2018年发展规划”公告(见上图).公告中指出,将在于2018年发布10.3.X新版本,新版本兼容Ex ...

  6. Git 常用命令总结(精问)

    Git 常用命令总结(精问) 一.总结 一句话总结:下次尝试做任何git的操作之前,把这个精看精问一遍,绝对会有意向不到的收获. 二.Git 常用命令总结 1.git常用命令 安装及配置: Ubunt ...

  7. 验证redis的快照和AOF

    http://blog.csdn.net/lichangzai/article/details/8692103 redis持久化简介: redis是一个支持持久化的内存数据库,也就是说redis需要经 ...

  8. P2P网贷第三方托管模式存在5大缺陷,护法是最大的赢家

    1.注冊开户须要2次,用户体验非常差劲儿.   理財人和借款人.首先在平台注冊,然后还要在第三方托管账户注冊.   非常多相似的地方,用户体验非常差劲.   比方.password4个.   平台:登 ...

  9. iOS QLPreviewController(Quick Look)快速浏览jpg,PDF,world等

    #import <QuickLook/QuickLook.h> @interface ViewController ()<QLPreviewControllerDataSource, ...

  10. 学习鸟哥的Linux私房菜笔记(7)——文件查找与文件管理1

    一.可执行文件的搜索 which 显示一个可执行文件的完整路径 按照alias->$PATH的顺序查找 查看系统的环境变量 whereis 搜索一个可执行工具及其相关配置.帮助 slocate ...