今天在学习如何在C++Builder下实现FTP断点续传的技术时,发现文中对FASTNET组件于其他的网络组件进行了一个评比,文中指出了FASTNET组件的NMFTP组件存在的问题。突然发现我们开发的很多的网络程序都有用到FASTNET组件,想想文中提到的FASTNET组件的一些Debug就有一点恐惧。于是在网上疯狂的搜索FASTNET组件的源代码包,功服不负有心人,在delphi盒子论坛上找到了FASTNET组件的源码包。(在这里要感谢谢我们伟大的同行们无私的奉献。在这里贴出本人对FASTNET组件源码的备份地址:http://blogimg.chinaunix.net/blog/upfile2/100805121102.zip)
源代码下载下来后,就开发对源码进行编译,发现该组件包中没有提供c++ builder的bpk的工程文件,只有delphi的dpk工程文件,本人机子上没有delphi,同事们也都是使用c++作开发的,突然发现编译该代码挺困难的。但是本人好奇心强,想看看这份代码是否是有用的代码,所以决定使用BCB6.0对其强制编译。
本人编译FASTNET组件源码包的步聚如下:
1.首先去老妖大哥的网站上下载一个dpk转bpk的工程文件转换小工具dpk2bpk。
下面给出dpk2bpk工具的下载说明:
http://blog.chinaunix.net/u3/108571/showart_2290774.html
在这篇blog的结尾处有该工具的介绍,和下载地址。
获的dpk2bpk工具后,将其解压到含有FASTNET源代码的文件夹下,这本机是FASTNET\Lib文件夹下。
使后用鼠标托动DCLNMF50.dpk文件到dpk2bpk.exe文件上面,执行dpk到bpk的格式转换。dpk2bpk工具
将对DCLNMF50.dpk文件生成bcb能使用的DCLNMF50.bpk和一个DCLNMF50.Cpp文件。因为我们使用的是
bcb6.0版本,所以我们要对生成的DCLNMF50.bpk文件内容进行一点改到,使用记事本打开DCLNMF50.bpk
文件,将50的字符全部替换成60的字符就可以了,然后保存文件。文件保存后,就修改DCLNMF50.bpk和
DCLNMF50.Cpp文件的文件名,将文件名改为DCLNMF60.bpk和DCLNMF60.Cpp。这样就可以用bcb6打开
DCLNMF60.bpk工程文件了。
2.DCLNMF60.bpk文件被打开后会弹出一个Package管理器的对话框里面会有DCLNMF60.bpk包中的一些包
含文件列表信息和编译该组件包的所关联的一些必要条件。在Package包管理器中的Contains文件包中里
面包含有4个文件(dclnmf60.cpp,dclnmf60.res,nmReg.dcr,NMReg.pas)。然后点击Package包
管理器中的Compile功能按钮编译DCLNMF60.bpk组件包,接这bcb6开始对这个包进行编译,在编译的时候
出现一条“
提示File not found 'DesignIntf.dcu'”这样的错误提示。然后开始查看NMReg.pas
中的源码,发现在NMReg.pas单元文件中的 Uses声名项中有声名DesignIntf,和DesignEditors单元,
出现问题后在网上又是一阵狂搜,最后找到解决方案:《
D7下提示File not found 'DesignIntf.dcu'解决方法》
URL: http://blog.chinaunix.net/u3/108571/showart_2290928.html
这方法是在网上搜集的,本人参考一下该方法,在本机的实际操作方法如下:选择BCB开发工具的菜单栏上
的Project->Options,单击Options按钮弹出Project Options for dclnmf60.bpl对话框,然后选
择Directories/Conditionals页面,编辑这个页面中的(Library path:)编辑框-点击Library
path:编辑框右边的[...]按钮,弹出Directories对话框,点击Greyed items denote invalid
path:下面的编辑框中右边的[...]弹出文件浏览对话框,将BCB安装目录下的Source\Toolsapi文件
夹选中,然后单击OK,这文件添加到Ordered List of Library paths:文件列表框中。完成上述操作
后,再点击Package管理器中的Compile功能按钮,进行编译发现还是不通过,bcb提示[Linker Fatal
Error]Fatal:Unable to Open file 'MYDIYCOMPONENT.LIB'这样的错误,发现
MYDIYCOMPONENT.LIB是本人开发的一个TNumberEdit控件的一个Lib库文件来的,本人将该控件放在本
机的BCB安装文件夹的Othervcl\MyDiyComponet目录下,然后将存放MYDIYCOMPONENT.LIB库文件的目
录路径添加Library path:中。就差不多可以编译生成dclnmf60.bpl文件了。不过还差最后一步。
3.将FastNet目录下的Lib文件夹中的所有的*.Pas文件添加到Package管理器中的Contains文件包下。如果
不知道怎添加这些文件到Package管理器中,本人给一个参考操作,点击Add功能按钮,弹出Add对话框,
点击Unit file name:编辑框右边的[Browse]按钮,弹出文件选择对话框,然后找到FastNet组件源码中
的Lib文件夹下,将该文件夹下的所有Pas文件全部选中添加到Package管理器中的Contains中,然后点
击Compile按钮对FastNet组件进行编译,然后稍等一会几就弹出 Compiling对话框,然后Done:这一行
出现Maked的提示就表示FastNet组件源码编译成功了。OK。
阅读(2442) | 评论(1) | 转发(0) |