﻿<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>学习日记 &#187; eMule</title>
	<atom:link href="https://www.softwareace.cn/?feed=rss2&#038;tag=emule" rel="self" type="application/rss+xml" />
	<link>https://www.softwareace.cn</link>
	<description>时刻想着为自己的产品多做一些对他好的事情</description>
	<lastBuildDate>Fri, 20 Mar 2026 06:58:28 +0000</lastBuildDate>
	<language>zh-CN</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	
	<item>
		<title>编译官方eMule v0.49攻略</title>
		<link>https://www.softwareace.cn/?p=426</link>
		<comments>https://www.softwareace.cn/?p=426#comments</comments>
		<pubDate>Thu, 16 May 2013 05:34:58 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[eMule]]></category>

		<guid isPermaLink="false">http://www.softwareace.cn/?p=426</guid>
		<description><![CDATA[备注：编译环境Microsoft Visual C++ .NET 7.1，编译版本为官方eMule v0.49 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>备注：编译环境Microsoft Visual C++ .NET 7.1，编译版本为官方eMule v0.49版本，非国内VeryCD版本。</p>
<p>一：下载源代码和支持库 1.下载eMule v0.49 源代码</p>
<p><a href="http://prdownloads.sourceforge.net/emule/eMule0.49c-Sources.zip">http://prdownloads.sourceforge.net/emule/eMule0.49c-Sources.zip</a> 2.Crypto v5.1 <a href="http://www.cryptopp.com/crypto51.zip">http://www.cryptopp.com/crypto51.zip</a> 3.zlib v1.2.3</p>
<p><a href="http://www.zlib.net/zlib-1.2.3.tar.gz">http://www.zlib.net/zlib-1.2.3.tar.gz</a> 4.ResizableLib 1.3 &#8212; A set of MFC classes to easily make resizable windows</p>
<p><a href="http://sourceforge.net/projects/resizablelib/files/ResizableLib/1.3/ResizableLib_1_3.zip/download">http://sourceforge.net/projects/resizablelib/files/ResizableLib/1.3/ResizableLib_1_3.zip/download</a></p>
<p>5.libpng-1.2.40</p>
<p><a href="http://prdownloads.sourceforge.net/libpng/libpng-1.2.40.tar.gz?download">http://prdownloads.sourceforge.net/libpng/libpng-1.2.40.tar.gz?download</a></p>
<p>&nbsp;</p>
<p>二：编译前整理工作</p>
<ol>
<li>解压eMule0.49c-Sources.zip到目录：eMule0.49c-Sources</li>
</ol>
<p>可以看到eMule主工程目录在srchybrid文件夹, 另外该文件夹下已经携带了三个第三方库：EditBinX, id3lib, ReplaceVistaIcon和一个空壳库：zlib（只有工程文件，没有源文件）</p>
<p>使用VS.NET 2003直接打开srchybrid目录下的：emule_vc71-all.sln 会提示无法加载另外三个工程：</p>
<p>/crypto51/cryptlib_vc71.vcproj</p>
<p>/ResizableLib/ResizableLib_vc71.vcproj</p>
<p>/libpng/Projects/VisualC71/libpng.vcproj</p>
<p>因此需要把这些第三方工程导入到整个solution中。</p>
<ol>
<li>解压crypto51.zip到/eMule0.49c-Sources/crypto51</li>
</ol>
<p>该工程默认为VC6打开，复制cryptlib.dsp为cryptlib_vc71.dsp。使用VS2003打开，讲提示是否升级，同意后点击保存工程会生成：cryptlib_vc71.vcproj</p>
<ol>
<li>解压ResizableLib_1_3.zip到/eMule0.49c-Sources/ResizableLib</li>
</ol>
<p>该工程默认为VC6打开，使用上述方法生成：ResizableLib_vc71.vcproj</p>
<ol>
<li>解压libpng-1.2.40.tar.gz到/eMule0.49c-Sources/libpng</li>
</ol>
<p>默认即有：/libpng/projects/visualc71/libpng.vcproj</p>
<ol>
<li>解压zlib-1.2.3.tar.gz中的文件到已存在的目录：/eMule0.49c-Sources/zlib</li>
</ol>
<p>&nbsp;</p>
<p>三：开始编译工作</p>
<ol>
<li>此时VS2003打开emule_vc71-all.sln将看到比较完整的工程文件夹。根据依赖关系逐个编译。先编译依赖库，再编译eMule。</li>
<li>编译crypto</li>
</ol>
<p>1.Crypto v5.1。对于VC .NET 2003编译器，我们要对源代码做以下修改： http://www.mscto.com</p>
<p>在文件integer.cpp中把 AllocatorBase&lt;T&gt;::pointer AlignedAllocator&lt;T&gt;::allocate(size_type n, const void *) 改为 CPP_TYPENAME AllocatorBase&lt;T&gt;::pointer AlignedAllocator&lt;T&gt;::allocate(size_type n, const void *)</p>
<p>&nbsp;</p>
<p>在文件pubkey.h中把 template &lt;class PK, class GP&gt; class DL_KeyImpl : public PK { public: typedef GP GroupParameters;<br />
OID GetAlgorithmID() const {return GetGroupParameters().GetAlgorithmID();} 改为 template &lt;class PK, class GP, class O = OID&gt; class DL_KeyImpl : public PK { public: typedef GP GroupParameters;<br />
O GetAlgorithmID() const {return GetGroupParameters().GetAlgorithmID();}</p>
<ol>
<li>编译eMule提示无法找到sapi.h，解决线索如下</li>
</ol>
<p>// NOTE: If you get a compile error due to missing &#8216;sapi.h&#8217;, look at &#8220;emule_site_config.h&#8221; for further information.</p>
<p>&nbsp;</p>
<p align="left">// &#8216;sapi.h&#8217; is not shipped with VS2003.</p>
<p align="left">// Uncomment the following line if you get compile errors due to missing &#8216;sapi.h&#8217;</p>
<p>#undef HAVE_SAPI_H</p>
<p>&nbsp;</p>
<ol>
<li>编译eMule提示无法找到wmsdk.h</li>
</ol>
<p align="left">// Uncomment the following line if you get compile errors due to missing &#8216;wmsdk.h&#8217;</p>
<p>#undef HAVE_WMSDK_H</p>
<ol>
<li>编译eMule提示没有找到wmvcore.lib</li>
</ol>
<p>从网上下载一个，这个库是标准DirectShow的组件</p>
<ol>
<li>编译eMule提示无法找到：../crypto51/release/cryptlib.lib</li>
</ol>
<p>需要修改工程设置中的Linker-&gt;Input-&gt;Additional Dependencies</p>
<p>../crypto51/release/cryptlib.lib 修改为：</p>
<p>../crypto51/release/cryptlib_vc71.lib</p>
<p>../crypto51/debug/cryptlib.lib 修改为：</p>
<p>../crypto51/debug/cryptlib_vc71.lib</p>
<ol>
<li>编译eMule提示没有找到ResizableLib.lib.</li>
</ol>
<p>Solution中ResizableLib Project比较奇怪，编译环境需要选择</p>
<p>Lib Release/Debug 而不是：</p>
<p>Unicode Release/Debug</p>
<p>C运行时库选择Multi-threaded(/MT)</p>
<p>../ResizableLib/ReleaseUnicode/ResizableLib.lib 修改为：</p>
<p>../ResizableLib/Release/ResizableLib_vc71.lib</p>
<p>../ResizableLib/DebugUnicode/ResizableLib.lib 修改为：</p>
<p>../ResizableLib/Debug/ResizableLib_vc71.lib</p>
<ol>
<li>修改链接C的运行时库</li>
</ol>
<p>EditBinX: Single-threaded(/ML) à Multi-threaded(/MT)</p>
<p>Ligpng: Multi-threaded DLL(/MD) à Multi-threaded(/MT)</p>
<p>ReplaceVistaIcon: Single-threaded(/ML) à Multi-threaded(/MT)</p>
<p>如果编译Release版，则所有eMule的支持库都用/MT编译。</p>
<p>如果编译Debug版，则所有eMule的支持库都用Multi-threaded debug(/MTd)编译。</p>
<p>如此可以避免很多链接冲突问题。</p>
]]></content:encoded>
			<wfw:commentRss>https://www.softwareace.cn/?feed=rss2&#038;p=426</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>电驴代码编译</title>
		<link>https://www.softwareace.cn/?p=425</link>
		<comments>https://www.softwareace.cn/?p=425#comments</comments>
		<pubDate>Thu, 16 May 2013 04:01:43 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[eMule]]></category>

		<guid isPermaLink="false">http://www.softwareace.cn/?p=425</guid>
		<description><![CDATA[本文主要讲解下怎么编译电驴，希望有基础的朋友看看，如何编译 eMule v0.46b. 先下载下面4个库: C [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>本文主要讲解下怎么编译电驴，希望有基础的朋友看看，如何编译 eMule v0.46b.</p>
<p>先下载下面4个库:</p>
<p>Crypto++5.2.1 <a href="http://www.eskimo.com/~weidai/cryptopp521.zip">http://www.eskimo.com/~weidai/cryptopp521.zip</a></p>
<p>zlib122.zip <a href="http://www.zlib.net/zlib122.zip">http://www.zlib.net/zlib122.zip</a></p>
<p>ResizableLib1.3 <a href="http://PRdownloads.sourceforge.net/resizab…_3.zip?download">http://PRdownloads.sourceforge.net/resizab…_3.zip?download</a></p>
<p>lpng128 <a href="http://download.sourceforge.net/libpng/lpng128.zip">http://download.sourceforge.net/libpng/lpng128.zip</a></p>
<p>eMulev0.46b的源代码: <a href="http://www.emule-project.net/home/perl/gen…=16&amp;rm=download">http://www.emule-project.net/home/perl/gen…=16&amp;rm=download</a></p>
<p>1).eMule0.46b-Sources.zip解压到eMule0.46b-Sources-&gt;把下载的文件都放进去-&gt;打开eMule0.46b-Sources文件夹</p>
<p>2).cryptopp521.zip解压到cryptopp521-&gt;重命名为cryptopp 打开cryptopp\cryptest.dsw 点生成-&gt;生成解决方案</p>
<p>3).zlib122.zip解压到zlib122-&gt;重命名为zlib 打开zlib\projects\visualc6\zlib.dsw 点生成-&gt;配置管理器-&gt;活动的解决方案配置-&gt;LIBDebug 解决方案资源管理器-&gt;右击”zlib”-&gt;属性-&gt;配置属性-&gt;C/C++-&gt;代码生成-&gt;运行时库-&gt;多线程调试(/MTd) 点生成-&gt;生成解决方案</p>
<p>4).ResizableLib_1_3.zip解压到当前文件夹 打开ResizableLib\ResizableLib.dsw 点项目-&gt;属性-&gt;配置属性-&gt;常规-&gt;MFC的使用-&gt;在静态库中使用MFC 点项目-&gt;属性-&gt;配置属性-&gt;常规-&gt;字符集-&gt;使用Unicode字符集 点项目-&gt;属性-&gt;配置属性-&gt;C/C++-&gt;代码生成-&gt;运行时库-&gt;多线程调试(/MTd) 点项目-&gt;属性-&gt;配置属性-&gt;C/C++-&gt;语言-&gt;将wchar_t视为内置类型-&gt;是(/Zc:wchar_t) 点生成-&gt;生成解决方案</p>
<p>5).lpng128.zip解压到当前文件夹-&gt;重命名为png 打开png\projects\visualc71\libpng.sln 点生成-&gt;配置管理器-&gt;活动的解决方案配置-&gt;LIBDebug 解决方案资源管理器-&gt;右击”libpng”-&gt;属性-&gt;配置属性-&gt;C/C++-&gt;代码生成-&gt;运行时库-&gt;多线程调试(/MTd) 点生成-&gt;生成解决方案</p>
<p>6).打开id3lib\libprj\id3lib.sln 点生成-&gt;生成解决方案</p>
<p>7).打开srchybrid\lang\lang.sln 点生成-&gt;生成解决方案/*可能会出现“非法操作”，这个不用管它.</p>
<p>8).打开srchybrid\CxImage\cximage.sln 点生成-&gt;生成解决方案</p>
<p>9).打开srchybrid\emule.sln 点编辑-&gt;查找和替换-&gt;在文件中替换-&gt;查找内容=crypto51替换为=cryptopp-&gt;全部替换 点项目-&gt;属性-&gt;配置属性-&gt;链接器-&gt;输入-&gt;附加依赖项-&gt;version.libwinmm.libws2_32.libgdiplus.libADSIId.libcrypt32.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 至此，我们的编译工作就完成了，最后可以看一下自己的劳动成果哈。</p>
<p>说明一下，本文的编译环境是:XPproSP2,VS.net2003</p>
]]></content:encoded>
			<wfw:commentRss>https://www.softwareace.cn/?feed=rss2&#038;p=425</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
