让VS2010支持Windows2000



用Visual Studio 2010编译的程序无法在Windows 2000,Windows XP SP1上运行,经分析主要原因是VS2010的运行库调用了kernel32.dll的DecodePointer和EncodePointer两个函数,而这两个函数仅在Windows XP SP2及以上版本的Windows中才有,关于这两个函数的信息,网上有大量的信息可以参考,不再赘述,我们仅从实用角度说明如何让VS2010支持Windows 2000。
首先生成一个crack.asm文件,内容如下:
.model flat
.data
__imp__EncodePointer@4 dd dummy
__imp__DecodePointer@4 dd dummy
EXTERNDEF __imp__EncodePointer@4 : DWORD
EXTERNDEF __imp__DecodePointer@4 : DWORD
.code
dummy proc
mov eax, [esp+4]
ret 4
dummy endp
end
然后进入VS2010的命令行模式,一定要进入VS2010的命令行模式,不能简单的执行cmd,废话少说,继续,执行以下命令编译crack.asm:
ml -c crack.asm
编译完得到crack.obj
第三步,将得到的crack.obj添加到需要支持Windows 2000的项目里,直接添加即可,无需其他配置。编译后用depends看一下对kernel32的依赖,发现已经没有了EncodePointer和DecodePointer的依赖。
如果不习惯使用obj文件,也可以用以下命令将obj编成lib文件:
lib crack.obj
将得到的crack.lib文件添加到项目中即可,但必须确保链接顺序先于kernel32.lib。
如果运行时出现不是合法的Win32程序,注意以下两处:
1. targetver.h文件中的_WIN32_WINNT值,VS2010默认使用SDK的最高版本,需要手动改为需要的版本:
#define _WIN32_WINNT 0x0500
#include <SDKDDKVer.h>
2. Minimum Required Version,此设置影响PE文件头中的VERSION信息,VS2010默认设置为5.1,需要手动改为需要的版本:
对于Win2000为 5.0
让VS2010支持Windows2000的更多相关文章
- 让VS2010支持HTML5
一.升级Microsoft Visual Studio 2010到Microsoft Visual Studio 2010 sp1 1.升级方法一这里直接给传送门了 Microsoft Visual ...
- vs2010支持html5+css3
第一步. 先到微软官方下载一个 Microsoft Visual Studio 2010 sp1 . 给传送门:下载 下载到这个东东 ---
- 让Vs2010支持 Css3+HTML5
第一步. 先到微软官方下载一个 Microsoft Visual Studio 2010 sp1 . 给传送门:.microsoft.com/downloads/zh-cn/details.aspx? ...
- VS2010 支持 CSS3
在安装Standards Update for VS2010 SP1后,VS2010中没有CSS3.0问题,以下是我的解决方法 1.首先去官网下载 CSS 3 Intellisense Schema ...
- 让 VS2010 支持 HTML5 和 CSS3.0
现在的热门话题之一是HTML5 和 CSS3.好的, 它们都很时髦,它们也必然会影响网络开发的未来. 让我们尝尝鲜,花点时间安装设置一下,尽快让Visual Studio2010支持HTML5 和 C ...
- 使用Qt5.7.0 VS2015版本生成兼容XP的可执行程序 good(从VS2012 update1开始支持xp和c++11)
一.直接使用VS2012/VS2013/VS2015生成XP兼容的可执行程序 Visual Studio刚发布时没打补丁,称为RTM版,之后会陆续发布补丁,进行bug修复和功能增强.VS2010及之前 ...
- vs2010中iostream.h出错
使用 #include <iostream> using namespace std; 替代 VS2010删除了所有非标准库,保留了C++标准库,iostream.h是以前旧版的库,VS2 ...
- vc6中向vs2010迁移的几个问题
vc6版本支持的库编译:CJ60lib 1. 用vs2010打开CJ60库的源码的dsw,强制打开 (1)设置项目属性的语言 因为,如果代码字符的编码集不一样,则会出现函数冲定义,参数冲突等问题,这可 ...
- 很不错的在线Office控件:IWebOffice与SOAOffice
http://blog.csdn.net/cjh200102/article/details/17220441 iWebOffice2003文档控件 iWebOffice2003网络文档中间件能够在I ...
随机推荐
- 洛谷P2256 一中校运会之百米跑
题目背景 在一大堆秀恩爱的**之中,来不及秀恩爱的苏大学神踏着坚定(?)的步伐走向了100米跑的起点.这时苏大学神发现,百米赛跑的参赛同学实在是太多了,连体育老师也忙不过来.这时体育老师发现了身为体育 ...
- 项目vue2.0仿外卖APP(七)
ratings评价列表页实现 在ratings.vue组件里开发 首先先引入seller数据: 书写模板结构: 由于评价页又有之前写过的star.vue组件,所以又要在ratings.vue组件引入: ...
- [LeetCode] Unique Word Abbreviation 独特的单词缩写
An abbreviation of a word follows the form <first letter><number><last letter>. Be ...
- HFSS仿真小例
微带拐角对比实验 微带四分之波长变换器插入前后对比 P1 P2 分配波端口激励,设置差分信号线 微带线差分对的差模阻抗随着差分线间距的增大而增大,随着线宽的增大而减小: 共模阻抗随着差分线间距的增大而 ...
- web前端面试总结
本文由我收集总结了一些前端面试题,初学者阅后也要用心钻研其中的原理,重要知识需要系统学习.透彻学习,形成自己的知识链.万不可投机取巧,临时抱佛脚只求面试侥幸混过关是错误的!也是不可能的! 前端还是一个 ...
- 给空签名包进行签名以及找不到keystore证书链问题的解决方案
转 http://blog.csdn.net/u011106842/article/details/49683865
- zabbix利用api批量添加item,并且批量配置添加graph
关于zabbix的API见,zabbixAPI 1item批量添加 我是根据我这边的具体情况来做的,本来想在模板里面添加item,但是看了看API不支持,只是支持在host里面添加,所以我先在一个ho ...
- python 补漏计划
从今天开始把python的细枝末节都梳理下 争取 每星期 两篇博文
- com.panie 项目开发随笔(NoF)_环境搭建(2016.12.29)
(一) 最近做的框架一直在 spring + springmvc + mybatis 的基础上,使用框架的好处自然是 简化了自己的开发工作,定义好大的结构体系后就在里面套用方法了! 可是框架的毛病同样 ...
- JavaScript事件详解-Zepto的事件实现(二)【新增fastclick阅读笔记】
正文 作者打字速度实在不咋地,源码部分就用图片代替了,都是截图,本文讲解的Zepto版本是1.2.0,在该版本中的event模块与1.1.6基本一致.此文的fastclick理解上在看过博客园各个大神 ...