eMule 编译开发相关问题联盟

最近准备再学一下C++,在网上发现了一个很好的工程:eMule(电螺)下载利器啊!准备用它做范例来学习,结果下载了 0.46c 的源文件,几经周折还是没有能够顺利编译成功。实在是搞不懂,不知网上有哪些志同道合的一切来吧!我们把它逆向分解分析了,彻底的!!!开源的项目竟然是用vc.net(vc7.10)开发的,我想把它用标准c++dev-c++或者g++下面实现,有兴趣的一起来参与吧!

目标:

1、              分析eMule源代码编程结构;

2、              向其它编辑平台移植;

3、              在前面分析的基础上对其进行改进和增强;

4、              基本达到理想状态,完成整个c++温习过程!

目前开始第一步,将其逆向工程为UML描述的工程文档,不能仅仅只包括类图,要分析透彻才好。有愿意加盟者请关注次页,借此处交流。

              下面是收集的一些资料,可以参考:

如何编译 eMule v0.46b

先下载下面4个库:
Crypto++  5.2.1
http://www.eskimo.com/~weidai/cryptopp521.zip
zlib122.zip
http://www.zlib.net/zlib122.zip
ResizableLib 1.3
http://prdownloads.sourceforge.net/resizablelib/ResizableLib_1_3.zip?download
lpng128
http://download.sourceforge.net/libpng/lpng128.zip

eMule v0.46b的源代码:
http://www.emule-project.net/home/perl/general.cgi?l=16&rm=download

/*如果下载不来 就用浏览器打开*/
/*
硬盘有700空间 大概需要60分钟*/

__1__.eMule0.46b-Sources.zip解压到 eMule0.46b-Sources ->把下载的东东都放进去->打开eMule0.46b-Sources文件夹

__2__.cryptopp521.zip解压到 cryptopp521  ->重命名为cryptopp
          
打开 cryptopp/cryptest.dsw  
          
 生成 -> 生成解决方案

__3__.zlib122.zip解压到 zlib122  ->重命名为zlib
          
打开 zlib/projects/visualc6/zlib.dsw 
          
 生成 -> 配置管理器 ->活动的解决方案配置 ->LIB Debug
          
解决方案资源管理器 -> 右击 "zlib" ->属性 ->配置属性->C/C++->代码生成->运行时库->多线程调试(/MTd)
          
 生成 -> 生成解决方案

__4__.ResizableLib_1_3.zip解压到当前文件夹 
          
打开 ResizableLib/ResizableLib.dsw
          
 项目->属性 ->配置属性 ->常规->MFC的使用->在静态库中使用 MFC
          
 项目->属性 ->配置属性 ->常规->字符集->使用 Unicode 字符集
          
 项目->属性 ->配置属性 ->C/C++->代码生成->运行时库->多线程调试(/MTd)
          
 项目->属性 ->配置属性 ->C/C++->语言-> wchar_t 视为内置类型->(/Zc:wchar_t)
          
 生成 -> 生成解决方案

__5__.lpng128.zip解压到当前文件夹->重命名为png
          
打开 png/projects/visualc71/libpng.sln
          
 生成 -> 配置管理器 ->活动的解决方案配置 ->LIB Debug
          
解决方案资源管理器 -> 右击 "libpng" ->属性 ->配置属性->C/C++->代码生成->运行时库->多线程调试(/MTd)
          
 生成 -> 生成解决方案

__6__.打开 id3lib/libprj/id3lib.sln
          
 生成 -> 生成解决方案

__7__.打开 srchybrid/lang/lang.sln
          
 生成 -> 生成解决方案 /*可能会出现‘ 非法操作‘ 不管它*/

__8__.打开 srchybrid/CxImage/cximage.sln
          
 生成 -> 生成解决方案

__9__.打开 srchybrid/emule.sln
          
 编辑->查找和替换->在文件中替换->查找内容=crypto51  替换为=cryptopp->全部替换
          
 项目->属性 ->配置属性 ->链接器 ->输入->附加依赖项->version.lib winmm.lib ws2_32.lib gdiplus.lib ADSIId.lib crypt32.lib ../zlib/projects/visualc6/Win32_LIB_Debug/zlibd.lib ../cryptopp/debug/cryptlib.lib ../id3lib/libprj/id3libD.lib ./CxImage/debug/cximage.lib ../png/projects/visualc71/Win32_LIB_Debug/libpngd.lib ../ResizableLib/Debug/ResizableLib.lib


                           
编译环境:XP pro SP2, VS.net 2003
                                   2005.7.6 10:20  ___j___  

今天花了大半天,编译eMule,最后还是没成功,到网上到处找相关文章,太少了,看一遍网文,照着搬,但最后还是失败了,下面是刚找到的,不知道又能不能成功,先放这里,等我搞定了,再来讲几句,呵呵!学VC,这东东当例子,应该不错!
本文摘自:http://blog.gameres.com/thread.asp?BlogID=1229&threadid=32245



如何编译 eMule v0.46b

先下载下面4个库:
Crypto++ 5.2.1
http://www.eskimo.com/~weidai/cryptopp521.zip
zlib122.zip
http://www.zlib.net/zlib122.zip
ResizableLib 1.3
http://prdownloads.sourceforge.net/resizab..._3.zip?download
lpng128
http://download.sourceforge.net/libpng/lpng128.zip
=================================================================


刚才在网上找到个好东东,上面几个包,这里全有,呵呵,这下,可不用下那么多了
网址是:http://ionix.airu.de/Downloads-index-req-viewdownload-cid-4.html


加压ionix-libs-presetted-uni到一个目录,在解压 emule 0.46a -Sources.zip,把emule 0.46解压出来的srchybrid文件夹拷贝到ionix-libs-presetted-uni目录中,然后打开ionix-libs-presetted-uni目录中的emule.sln,这个项目就完整了

bloger注!)
=================================================================

eMule v0.46b
的源代码:
http://www.emule-project.net/home/perl/gen...=16&rm=download



1).eMule0.46b-Sources.zip
解压到 eMule0.46b-Sources ->把下载的东东都放进去->打开eMule0.46b-Sources文件夹

2).cryptopp521.zip
解压到 cryptopp521 ->重命名为cryptopp
打开 cryptopp/cryptest.dsw
生成 -> 生成解决方案

3).zlib122.zip
解压到 zlib122 ->重命名为zlib
打开 zlib/projects/visualc6/zlib.dsw
生成 -> 配置管理器 ->活动的解决方案配置 ->LIB Debug
解决方案资源管理器 -> 右击 "zlib" ->属性 ->配置属性->C/C++->代码生成->运行时库->多线程调试(/MTd)
生成 -> 生成解决方案

4).ResizableLib_1_3.zip
解压到当前文件夹
打开 ResizableLib/ResizableLib.dsw
项目->属性 ->配置属性 ->常规->MFC的使用->在静态库中使用 MFC
项目->属性 ->配置属性 ->常规->字符集->使用 Unicode 字符集
项目->属性 ->配置属性 ->C/C++->代码生成->运行时库->多线程调试(/MTd)
项目->属性 ->配置属性 ->C/C++->语言-> wchar_t 视为内置类型->(/Zc:wchar_t)
生成 -> 生成解决方案

5).lpng128.zip
解压到当前文件夹->重命名为png
打开 png/projects/visualc71/libpng.sln
生成 -> 配置管理器 ->活动的解决方案配置 ->LIB Debug
解决方案资源管理器 -> 右击 "libpng" ->属性 ->配置属性->C/C++->代码生成->运行时库->多线程调试(/MTd)
生成 -> 生成解决方案

6).
打开 id3lib/libprj/id3lib.sln
生成 -> 生成解决方案

7).
打开 srchybrid/lang/lang.sln
生成 -> 生成解决方案 /*可能会出现非法操作不管它*/

8).
打开 srchybrid/CxImage/cximage.sln
生成 -> 生成解决方案

9).
打开 srchybrid/emule.sln
编辑->查找和替换->在文件中替换->查找内容=crypto51 替换为=cryptopp->全部替换
项目->属性 ->配置属性 ->链接器 ->输入->附加依赖项->version.lib winmm.lib ws2_32.lib gdiplus.lib ADSIId.lib crypt32.lib ../zlib/projects/visualc6/Win32_LIB_Debug/zlibd.lib ../cryptopp/debug/cryptlib.lib ../id3lib/libprj/id3libD.lib ./CxImage/debug/cximage.lib ../png/projects/visualc71/Win32_LIB_Debug/libpngd.lib ../ResizableLib/Debug/ResizableLib.lib


编译环境:XP pro SP2, VS.net 2003

你可能感兴趣的:(多线程,C++,活动,配置管理,mfc,download)