VS2010编译Gh0st36.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VS2010编译Gh0st36

VS2010编译Gh0st3.6 (一)Vs编译Gh0st修改的工作量还是挺大的,毕竟从VC6.0移植到VS2010平台,已经是一个很大的跨越了,VS2010相对于VC6.0也改进了不止一点了。Gh0st3.6使用了第三方界面库CJ60Lib,目前这个库只支持到VC6.0,而其后的版本已经商业化,所以使用VS2010编译Gh0st的时候,需要重新编译CJ60Lib。VS2010的自带安装的Windows SDK已经到了7.1版,也不需要像VC6.0那样需要下载Windows SDK,并配置环境了。VC6.0支持的最高版本的Windows SDK 是Windows 2003的,而VS2010自带的7.1版已经到了Windows Server 2008 了,其中发生的变化也是很大的。下面具体来操作一次。先列一下几个主要下文件路径。用的是Gh0s3.6原版,硬盘锁代码已经注释。E:\Programming\VS2010\Gh0st3.6 E:\Programming\VS2010\Gh0st3.6\gh0st.dsw E:\Programming\VS2010\Gh0st3.6\gh0st\CJ60Lib E:\Programming\VS2010\Gh0st3.6\gh0st\CJ60Lib\CJ60Lib\CJ60Lib.dsw E:\Programming\VS2010\Gh0st3.6\gh0st\CJ60Lib\Lib一.编译CJ60Lib库直接用VS2010打开CJ60Lib.dsw进行转换。一共有7个,有4个是已经不存在的项目了,直接删掉。在灰色的项目上点右键–Remove,或直接按Del键删除。1.1编译CJ60StaticLib直接在CJ60StaticLib项目上点右键— Project Only —- Build Only CJ60StaticLib或者是 Rebuild Only CJ60StaticLib。以后说编译某个项目也是这样,不再重复说明了。1.1.1首先修改程序配置,让默认的字符都为ANSI字符,VS2010默认为宽字符Unicode版。项目—右键—属性—C/C++—Language—WChar_t—No,如图所示:修改编译后,对照错误,再来一个一个的修改。1.1.21 stdafx.cpp 1 _WIN32_WINNT not defined. Defaulting to _WIN32_WINNT_MAXVER (see WinSDKVer.h) 1e:\programming\vs2010\gh0st3.6\gh0st\cj60lib\cj60lib\stdafx.h(51): fatal error C1083: 无法打开包括文件:“..\src\afximpl.h”: No such file or directory双击这个错误,定位到 stdafx.h 中的#include ..\src\afximpl.h 把这句话改成 #include ..\src\mfc\afximpl.h1.1.3接着修改warning C4819警告warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失这个警告至需要双击打开该文件,然后保存就可以了。1.1.4gh0st3.6\gh0st\cj60lib\cj60lib\subclass.cpp(117): error C2065: “p”: 未声明的标识符这是因为VS更符号C++标准,临时变量的作用域已经修正了,在Gh0st里,可以看到很多这样的代码。只要把在for或if里面定义的变量,放到for或if之前定义就好了。这里的代码是:for (CSubclassWnd* p = theHookMap.Lookup(m_hWnd); p; p=p-m_pNext)修改为CSubclassWnd* p = NULL; for (p = theHookMap.Lookup(m_hWnd); p; p=p-m_pNext) 后面的i也是一样修改。gh0st3.6\gh0st\cj60lib\cj60lib\coolmenu.cpp(803): error C2065: “i”: 未声明的标识符for (i=0; i nFound; i++) { 这里的i,是在前面的 for (UINT i=0; i nItem; i++) 里面定义的,只要把for里面的i放到for之前定义就可以了,修改如下:UINT i=0; for (i=0; i nItem; i++)这样的错误修改,以后不再写出,因为实在是太多了,修改方法也很简单。1.1.5gh0st3.6\gh0st\cj60lib\cj60li

文档评论(0)

shenlan118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档