VS2012发布到XP平台
默认情况下,你的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平台的更多相关文章
- VS2012中使用CEGUI项目发布到XP平台的问题(核心方法就一句话。“你项目使用的所有外部依赖库都用/MT编译。”)
接着上一篇文章,详细说说如何把一个带CEGUI的项目发布到XP平台. 这个问题纠缠了我好几天.这里把详细解决思路记下来.有同样问题的朋友可以少走很多弯路. 核心方法就一句话.“你项目使用的所有外部依赖 ...
- NCache:最新发布的.NET平台分布式缓存系统
NCache:最新发布的.NET平台分布式缓存系统在等待Microsoft完成Velocity这个.NET平台下的分布式内存缓存系统的过程中,现在让我们将目光暂时投向其他已经有所建树的软件开发商.Al ...
- 使用VS中自带的一键打包功能将我们的ASP.NET Core类库打包并将程序包(类库)发布到NuGet平台上进行管理
本章将和大家简单分享下如何使用VS中自带的一键打包功能将我们的ASP.NET Core类库打包并将程序包(类库)发布到NuGet平台上进行管理. 一.注册并登录NuGet平台 NuGet官网:http ...
- vs2012 .netFramwork2.0发布到xp
开发环境 windows server2008R2 VS2012 .net Framwork2.0 开发的winform程序 在有的xp系统下不能运行 选择 项目属性=>编译 Build=&g ...
- 《转》VS2012发布网站详细步骤
本文转载自MannyGuo 如果给您带来不便请联系博主 1.打开你的VS2012网站项目,右键点击项目>菜单中 重新生成一下网站项目:再次点击右键>发布: 2.弹出网站发布设置面板,点击& ...
- VS2012发布网站详细步骤
1.打开你的VS2012网站项目,右键点击项目>菜单中 重新生成一下网站项目:再次点击右键>发布: 2.弹出网站发布设置面板,点击<新建..>,创建新的发布配置文件: 输入你自 ...
- 【转】VS2012发布网站详细步骤
1.打开你的VS2012网站项目,右键点击项目>菜单中 重新生成一下网站项目:再次点击右键>发布: 2.弹出网站发布设置面板,点击<新建..>,创建新的发布配置文件: 输入你自 ...
- 在windows xp 平台上安装mvc4失败
使用web 平台安装程序,在windows xp上安装mvc4 出现失败,需要主要是windows powershell 2.0安装失败,需要先卸载power shell 1.0或者 winowrm ...
- 一键打包并发布到Nuget平台
目标是只要执行一个命令就自动发布新版本到nuget平台 第一步在nuget官网注册一个账号 会有一个APIKEY 如下图 在工程里面添加一个Gruntfile.js 然后copy以下代码 在vs里 ...
随机推荐
- AE创建拓扑
转自原文 AE创建拓扑 /// <summary> /// 创建拓朴 /// </summary> /// <param name="featureWorksp ...
- [Angular] Reactive Form -- FormControl & formControlName, FormGroup, formGroup & formGroupName
First time dealing with Reactive form might be a little bit hard to understand. I have used Angular- ...
- Xcode编译Undefined symbols for architecture xxx 错误总结
可能会遇到这几种错误:Undefined symbols for architecture armv7Undefined symbols for architecture armv7sUndefine ...
- wpf datagrid 的单元格内容超出列宽度
---恢复内容开始--- <Window x:Class="WpfApplication2.MainWindow" xmlns="http://schemas.mi ...
- Thermal zone monitoring in an electronic device
FIELD One embodiment of the invention relates to a closed loop thermal control process in a portable ...
- 实践-Task
实践-Task 上篇博文中,我们介绍了Thread和ThreadPool: 多线程异步编程示例和实践-Thread和ThreadPool 本文中我们继续,说一下TPL(Task Parallel Li ...
- TensorFlow 下 mnist 数据集的操作及可视化
from tensorflow.examples.tutorials.mnist import input_data 首先需要连网下载数据集: mnsit = input_data.read_data ...
- 数据库版本管理工具Flyway——基础篇
Flyway 默认规约 SQL 脚本文件默认位置是项目的源文件夹下的db/migration 目录. Java 代码默认位于db.migration 包. SQL 脚本文件及Java 代码类名必须遵循 ...
- 华为如何实现基于Git的跨地域协同开发
跨地域开发的需求其实由来已久,在IT/互联网发展的早期就已存在,只不过限于当时网络环境的因素,无法在线上有效的完成协同工作,所以没法实际开展.而随着近十年网络的快速发展,跨地域协同开发线变得可能而且越 ...
- Data analysis system
A data analysis system, particularly, a system capable of efficiently analyzing big data is provided ...