shareaza的源码是v2.2.0,是用vc6.0开发的,我用vs2005进行编译的,所以需要进行
将原有的项目迁移,特将碰到的问题归纳如下:
1消息映射
VS2005对消息的检查更为严格,以前在VC6下完全正常运行的消息映射在VS2005下编译不通过

a. ON_MESSAGE(message,OnMyMessage);
   OnMyMessage返回值必须为LRESULT,其形式为:afx_msg LRESULT OnMyMessage(WPARAM, LPARAM);如果不符合,则有错误提示:
 
     error C2440: “static_cast”: 无法从“void (__thiscall CPppView::* )(WPARAM,LPARAM)”转换为“LRESULT (__thiscall CWnd::*

)(WPARAM,LPARAM)”
        在匹配目标类型的范围内没有具有该名称的函数
     error C2440: “static_cast”: 无法从“void (__thiscall CPppView::* )(void)”转换为“LRESULT (__thiscall CWnd::* )

(WPARAM,LPARAM)”
        在匹配目标类型的范围内没有具有该名称的函数
b. ON_COMMAND_EX(id,OnMyMessage2);
   在VS2005中,OnMyMessage返回值必须为BOOL,且含有一个 UINT 参数指出了命令ID,其形式为:afx_msg BOOL OnMyMessage(UINT);如果

不符合,
   则有错误提示,如在VS6中,OnMyMessage2的定义为afx_msg BOOL OnViewZoomBar()时亦可正常编译通过,但在VS2005下,有错误提示:
 
   error C2440: “static_cast”: 无法从“BOOL (__thiscall CMainFrame::* )(void)”转换为“BOOL (__thiscall CCmdTarget::* )

(UINT)”
        在匹配目标类型的范围内没有具有该名称的函数
    error C2440: “static_cast”: 无法从“BOOL (__thiscall CMainFrame::* )(void)”转换为“BOOL (__thiscall CCmdTarget::* )

(UINT)”
        在匹配目标类型的范围内没有具有该名称的函数
       
2 字符处理
 在c中广泛使用的strcpy,strcat,strstr等等推荐使用更为安全的strcpy_s,strcat_s,strstr_s等来代替
3 数学函数检查
 VS2005中,数学函数的参数检查更为严格,如pow(2, 45)会引起一个错误提示如下:
 
    error C2668: “pow”: 对重载函数的调用不明确
        d:\program files\microsoft visual studio 8\vc\include\math.h(575): 可能是“long double pow(long double,int)”
        d:\program files\microsoft visual studio 8\vc\include\math.h(527): 或“float pow(float,int)”
        d:\program files\microsoft visual studio 8\vc\include\math.h(489): 或“double pow(double,int)”
        试图匹配参数列表“(int, int)”时
   正确的使用为pow((float)2, (float)Settings.Library.QueryRouteSize)
  
3 更加符合C++标准
    如在VS6中,在FOR循环中的循环变量的定义的作用域延伸到循环体外,VS2005则修正了这样的bug。
    VC6:
    for(int i=0;i<100;i++)f2(); 
    for(i = 1;i<10;i++)f1();    //i已经定义
    而有VS2005中,第二句的i必须重新定义
4 需要zlib,可以从网站上下载,网址http://zlib.net

可以自己下载dll文件,或者可以自己编译!

转载于:https://www.cnblogs.com/hymxj/archive/2008/12/09/1350923.html

shareaza源码编译相关推荐

  1. java调用clang编译的so_写Java这么久,JDK源码编译过没?编译JDK源码踩坑纪实

    好奇害死羊 很多小伙伴们做Java开发,天天写Java代码,肯定离不开Java基础环境:JDK,毕竟我们写好的Java代码也是跑在JVM虚拟机上. 一般来说,我们学Java之前,第一步就是安装JDK环 ...

  2. 5单个编译总会编译全部_玩转Android10(五)源码编译开发中常用命令

    源码开发编译中,熟练掌握常用命令,可以提高开发工作效率.Android源码中,将相关的命令分为如下几类: 1.初始化源码编译环境 初始化编译环境,为后续提供如lunch.make.xxgrep.god ...

  3. mono和monodevelop源码编译安装

    之所以用源码编译的方式安装mono和monodevelop,是因为通过yum安装的mono不是最新版本,而且monodevelop不能建 asp.net MVC3的工程. 而且通过源码安装,可以进一步 ...

  4. nginx源码编译、负载均衡及模块的扩展

    1.nginx源码编译 实验环境: iptables和selinux关闭 redhat6.5 nginx:test1: 172.25.1.11 [root@test1 ~]# ls nginx-1.1 ...

  5. mac通过tree源码编译安装tree

    通过tree源码编译安装  下载源码:curl -O ftp://mama.indstate.edu/linux/tree/tree-1.6.0.tgz  解压源码:tar xzvf tree-1.6 ...

  6. 干货|TensorFlow开发环境搭建(Ubuntu16.04+GPU+TensorFlow源码编译)

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|机器学习算法工程师 安装平台 1 平台 目前Tensor ...

  7. Nginx 源码编译安装

    Nginx 源码编译安装环境 Centos7 Nginx1.8.1    下载地址:http://nginx.org/download/ 选择自己想要的版本 我这边使用1.8.1,下载地址:http: ...

  8. 基本lnmp平台的搭建(源码编译)

    lnmp :linux ,nginx ,mysql ,php 系统环境:rhel6.0    selinux and iptables disabled  (这里我们都只用源码编译的方式) 1 ste ...

  9. 源码编译安装percona-xtrabackup-2.3.2

    一.系统包需求 rpm -q libaio-devel libgpg-error-devel libgcrypt-devel autoconf automake libidn-devel libcur ...

最新文章

  1. 如何优雅的完成长截图?
  2. webpack4打包html,html-webpack-plugin详解
  3. 有关camshift的知识点
  4. 计算机思维与数学思维的本质区别
  5. [导入]WCF后传系列(8):深度通道编程模型Part 1—设计篇
  6. 产品研发过程管理专题——产品需求分析原则一
  7. python 图像倾斜校正_边缘投影法对文本图像矫正——python
  8. RedHat系统的Yum安装
  9. 无线通信学习笔记(三)
  10. 晋商到底是怎么生与死的?
  11. 解决OBS录屏软件窗口采集不全的问题
  12. Scrapy抓取新浪微博
  13. PG的管道模式如何工作
  14. mysql gis polygon_把POLYGON转换到MULTIPOLYGON 中
  15. 少了五毛钱不卖的酷炫火焰特效!3D粒子哦!
  16. 机器学习-62-Structured Learning-03-Structured Support Vector Machine(结构化学习-结构化支持向量机)
  17. 32u图腾服务器机柜型号,图腾网络机柜-G36632-32U1.6米机柜
  18. 迁移学习技巧以及如何更好的finetune 模型
  19. GO --微服务框架(一) goa
  20. 2021.12.6-12.12 AI行业周刊(第75期):AI流程化

热门文章

  1. 事半功倍的高效工具,你值得拥有
  2. thinpad R61e 升级方案,CPU+内存!都要升级-----搞开发的电脑
  3. 【科研】IEEE期刊如何寻找正在征稿的特刊
  4. LIMS实验室系统需求分析的方法
  5. 【CSS】398- 原生JS实现DOM爆炸效果
  6. 匕首线切割图纸下载_使用Robolectric测试带有匕首注入依赖性的类
  7. 【DY-28C电压继电器】
  8. 如何在Excel/WPS表格中查询17Track国际物流快递?
  9. Android解决华为手机上出现Register too many Broadcast Receivers的crash
  10. 虚拟研讨会:移动Web应用开发技术最新动态