⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 emule 0.47a编译.txt

📁 自己收集网上牛人写的emule源码阅读经验
💻 TXT
字号:
经过多次努力编译0.47a成功,写下心得,主要注意的是由于依赖了四个开源的库,所以在配置工程连接输入路径时一定要正确配置,还有就是所有工程全部用/MTD方式编译,都要用相应的DEBUG模式,因为是为了学习和研究,所以不提供relase的配置了,需要的话可以参考上一次的编译。原来那次Relase模式的编译没有办法调试,给研究和学习带来不便。正确的编译方法如下:
先下载下面4个库: 
Crypto++ 5.2.1 
http://www.eskimo.com/~weidai/cryptopp521.zip 
zlib123.zip 
http://www.zlib.net/zlib123.zip 
ResizableLib 1.3 
http://prdownloads.sourceforge.net/resizablelib/ResizableLib_1_3.zip?download 
lpng128 
http://download.sourceforge.net/libpng/lpng128.zip 
eMule v0.47a的源代码: 
http://www.emule-project.net/home/perl/general.cgi?l=16&rm=download 

1.eMule0.47a-Sources.zip解压到 eMule0.46b-Sources ->把下载的东东都放进去->打开eMule0.46b-Sources文件夹,所有的附加包都按照下述命名要求放入sources文件夹中,和srchybrid同级。
所有的工程都用Multi-threaded(/MT)              编译模式
2.cryptopp521.zip解压到 cryptopp521 ->重命名为crypto51 
打开 crypto51\cryptest.dsw                   
点生成 -> 生成解决方案 
编译模式:Debug模式
3.zlib123.zip解压到 zlib123 ->重命名为zlib 
打开 zlib\projects\visualc6\zlib.dsw 
点生成 -> 配置管理器 ->活动的解决方案配置 ->LIB Debug 
解决方案资源管理器 -> 右击 "zlib" ->属性 ->配置属性->C/C++->代码生成->运行时库->多线程调试(/MTd) 
点生成 -> 生成解决方案                   
编译模式: LIB_DEBUG模式
4.ResizableLib_1_3.zip解压到当前文件夹 
打开 ResizableLib\ResizableLib.dsw 
点项目->属性 ->配置属性 ->常规->MFC的使用->在静态库中使用 MFC 
点项目->属性 ->配置属性 ->常规->字符集->使用 Unicode 字符集 
点项目->属性 ->配置属性 ->C/C++->代码生成->运行时库->多线程调试(/MTd) 
点项目->属性 ->配置属性 ->C/C++->语言->将 wchar_t 视为内置类型->是(/Zc:wchar_t) 
点生成 -> 生成解决方案 
编译模式: DEBUG模式
5.lpng128.zip解压到当前文件夹->重命名为png 
打开 png\projects\visualc6\libpng.sln 
点生成 -> 配置管理器 ->活动的解决方案配置 ->LIB Debug 
解决方案资源管理器 -> 右击 "libpng" ->属性 ->配置属性->C/C++->代码生成->运行时库->多线程调试(/MTd) 
点生成 -> 生成解决方案 
编译模式: LIB_DEBUG模式
6.打开 id3lib\libprj\id3lib.sln 
点生成 -> 生成解决方案 
编译模式:Debug模式
7.打开 srchybrid\lang\lang.sln 
点生成 -> 生成解决方案 /*可能会出现‘ 非法操作‘ 不管它*/ 
8.打开 srchybrid\CxImage\cximage.sln 
点生成 -> 生成解决方案 
编译模式:Debug模式
9.打开 srchybrid\emule_vc71.sln 
点项目->属性 ->配置属性 ->链接器 ->输入->附加依赖项->
version.lib winmm.lib ws2_32.lib gdiplus.lib ADSIId.lib crypt32.lib ..\zlib\projects\visualc6\Win32_LIB_Debug\zlibd.lib ..\crypto51\debug\cryptlib.lib ..\id3lib\libprj\id3libD.lib .\CxImage\debug\cximage.lib ..\png\projects\visualc71\Win32_LIB_Debug\pngd.lib ..\ResizableLib\Debug_Static\ResizableLib.lib
(注意上面的路径和自己编译出来的库名可能会有一部分不相符,要注意哦!自己好好核对,把附加库的路径和名字都写对了!)
编译模式:Debug模式
 
编译环境:XP pro SP2, VS.net 2003  


C2451错误PeerCacheFinder.cpp中:
if(result.Encode(aucResult, SIGNATURELENGTH)){ 改为
result.Encode(aucResult, SIGNATURELENGTH); 
if((aucResult, SIGNATURELENGTH)!=0){ 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -