$(WindowsSdkDir)/include放到win2003 Sdk R2前面
其它方法一、在emule_site_config.h中
#include
方法二、 修改emule_site_config.h 98行为
//#ifndef HAVE_VISTA_SDK
#undef HAVE_SAPI_H
//#endif//HAVE_VISTA_SDK
MfcStaticBinaryCompatible.cpp文件编译错误,在文件 # include……. 前加入#ifndef WINVER
#define WINVER 0x0502 // 0x0502 == Windows Server 2003, Windows XP (same as VS2005-MFC)
#endif
#ifndef _WIN32_WINNT
#define _WIN32_WINNT WINVER // same as VS2005-MFC
#endif
PeerCacheFinder.cpp文件错误打开srchybrid目录下的PeerCacheFinder.cpp文件找到672行,修改如下:
// if(result.Encode(aucResult, SIGNATURELENGTH)){
result.Encode(aucResult, SIGNATURELENGTH);
uchar aucHash1[16];
for (int i = 0; i != 16; i++)
aucHash1 = aucResult[(SIGNATURELENGTH-1)-i];
bSignatureCheckResult = md4cmp(MD5Sum(pachCompleteFile, nIFileSize-SIGNATURELENGTH).GetRawHash(), aucHash1) == 0;
// }
主要是由于在cryptopp530中result.Encode()返回的是void,跟以前的crypto51已经不一样了
源文档
定义是在vc/include/crtdefs.h 第548行
在scanner.cpp 增加一行 出现#include 前加入
#ifndef _USE_32BIT_TIME_T
#define _USE_32BIT_TIME_T
#endif
CVTRES : fatal error CVT1100: 重复的资源。type:MANIFEST, name:1, language:0× 0409LINK : fatal error LNK1123: 转换到COFF 期间失败: 文件无效或损坏
解决方案:
我的编译环境是Microsoft Visual Studio 2005
将所有工程的属性(工程全选->右击->属性)->配置属性->清单工具->输入输出->嵌入清单,选择“否”,然后编译,就OK了。
你可以参照微软的官方说明:http://support.microsoft.com/kb/320216/zh-cn
源文档
无法打开包括文件:“atlrx.h”: No such file or directory
VS 2008中由于将ALT项目的部分代码剥离出去成为了独立的开源项目,需要用到ALT中正则表达式等功能就需要手动下载。
参考:http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=306398
下载地址:http://www.codeplex.com/AtlServer (http://www.codeplex.com/AtlServer)
把下载的东西解压缩到一个目录,比如c:/alt/
在VS里面[工具]--[选项]--[项目和解决方案]--[VC++目录],在右上角选择[包含引用的文件]中加入c:/alt/include就OK了!
源文档
链接错误,函数已定义
所有项目的代码生成运行库是否一致,release版本为MT