默认情况下,你的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. Django项目开发实例之我的博客

    1.开发环境 2.创建virtualenv 3.安装相关包 Django Pillow 4.创建项目 添加应用: 5.设置静态文件和模板 6.运行测试 参考(http://www.cnblogs.co ...

  2. 以Graphicslayer为管理组来管理Element.

    转自原文 以Graphicslayer为管理组来管理Element. 前言 在AE开发过程中,我们经常使用Element(元素).它的出现让地图与用户之间的交互增加了不少的效果.在地图上,可以通过各种 ...

  3. php定时任务(自己)

    php定时任务(自己) 一.总结 一句话总结:可用php.exe连接php文件和bat文件,bat文件在计划任务中可以设置定时执行, 二. 1.php 2.bat E: "D:\softwa ...

  4. Atom编辑器折腾记_(13)JS代码智能提示补全(插件:atom-ternjs)

    题外话 官方正式版尽管内置了.autocomplete-plus;最为明显的一个功能就是记忆你已经输入过的名称进行匹配; 可是针对于某些语言来说,还是有些不足的-.当中JS的补全上就明显不足了-所以须 ...

  5. Java相关思维导图分享

    非常多朋友都给我发私信希望获得一份Java知识的思维导图,我来不及一一答复.原先是给大家一个百度网盘的链接分享,大家能够自己去下载,可是不知道云盘还能用多久.把相关资源转移到了QQ的群共享中.须要的朋 ...

  6. Oracle 自己主动内存參数依赖性

    图例:在该图中使用了下面參数名称缩写: MT = MEMORY_TARGET MMT = MEMORY_MAX_TARGET ST = SGA_TARGET PAT = PGA_AGGREGATE_T ...

  7. java使用mongoDB和freemarker注意事项

    mongoDB和关系数据库的差异最大的优势就是表结构不正确,说:.弱事务.mongoDB以牺牲换来的交易进行更快的访问速度,有人说mongoDB对于内存太贪婪,事实上,它不会.随着windows版本, ...

  8. Tricks(四十七)—— 布尔矩阵(0-1矩阵)取反

    假定 X 是一个 0-1 元素构成的布尔矩阵,则对其取反,0 变成 1,1 变为 0(True 变为 False,False 变成 True),只需要一步简单的操作: Y = (X == False)

  9. Sitecore

    Sitecore 功能最强大.最丰富的企业级 .NET 网站内容管理系统.包含的功能如下所述: 内容编辑和会话中的个性化 用于预览访客所看到的网站内容的体验浏览器 设备和地理位置 IP 检测(需要额外 ...

  10. 两分钟读懂ThreadLocal

    ThreadLocal的工作原理 场景 假设一个用户是一个线程.他们都对数据库进行操作,这个时候就会每个用户就会从数据源中开启一个事务以确保能够顺利的打开或者关闭事务.那么如何保证用户与用户之间的数据 ...