一直都想好好看一下电驴的源代码,前两天抽空编译了一下,现在把遇到的问题和解决方法记下来,希望对大家有所帮助。
我使用的编译环境是XP SP3,VS2008。
1. error C2471: 无法更新程序数据库
查找该错误的时候找到了两种解决方法,第一种是在微软官网上找到的(http://code.msdn.microsoft.com/KB946040),基本意思是说这是一个bug,且提供了一个补丁,但是我在安装的时候它提示说我没有安装相应的产品。第二种是修改项目配置,我的就是通过这种方法解决的。具体做法如下:
解决方案:修改项目属性 右击项目 --> "属性”
1. “C/C++” --> "常规” -->”调试信息格式” 设置为 “C7 兼容(/Z7)”
2. “C/C++” --> "代码生成” -->”启用字符串池” 设置为 “是(/GF)”
3. “链接器” --> "调试” -->”生成调试信息” 设置为 “是(/DEBUG)”
如图:
2 ITaskbarList3未定义
这是由于你的vs2008使用的不是windows SDK 7.0及以上版本造成的,下载7.0的sdk安装上就可以了。下面是7.0的下载地址:
安装时必须选择的项目是:
3 ip_option_information 和 icmp_echo_reply 重定义。
这是因为电驴源文件中的Pinger.h中的结构体定义和ipexport.h中的这两个结构定义冲突导致的,将ipexport.h中这两个结构体的定义注释掉即可。
4 无法打开atlrx.h头文件
这是由于vs2008默认没有安装ATL Server Library造成的。解决方法当然是自己下载后引用头文件就可以了。下载地址是:
http://atlserver.codeplex.com/
ok,我的电脑上这样修改后 编译、连接、运行一路通过,且可以下载东西。呵呵,如果你正在因为编译电驴头疼事,希望这篇文章能被你找到,祝你好运!