副标题#e#
一、安装步调:
1、拿到源码,要全部源码,不要那种只有部门源码的包。
2、找到BPK文件,假如只有DPK文件,那就用DPK2BPK措施(网上下载)生成一个BPK文件,假如生成失败,那就本身新建一个包(BPK或bdsproj),把DPK文件中包括的pas文件包括进去。
3、编译与安装。
二、留意事项:
1、Bpl包的重名问题,主要是不能重名,在Borland 与 system32下查找要安装的包的名字,假如找到全删除去。
2、文件的重名问题,.pas.h.hpp.dcu.obj.lib.bpl.bpi.dfm.res 等文件均不该有重名现象,假如有应删除旧版本文件。这里先容一个软件完成这项事情Beyond Compare,其主页是http://www.scootersoftware.com/
3、文件路径的设定,编译查找路径,链接时查找库文件的路径,BCB2006的路径设定会多一点,把Bcc32 Dcc32 ilink32 tasm32 平分隔设定,这些均要一一设定正确,并留意先後序次对编译器的影响。这3点留意事项要时刻想起,出了问题要先查证无误。不要因为这些问题而让本身陷入泥潭,那不值得。
三、编译链接中的常见错误及排错要领
1、找不到obj或dcu文件。看看你的硬盘是不是有这麽个文件,假如有那就是第二步所说的路径问题。
2、假如文件没插手项目,那是不会生成链接所需要的obj及lib文件的。这时要留意编译多个包时的先後序次。
3、编译开关节制文件,控件包代码中的编译开关一般放在一个文件(.inc)中,假如为pas後缀请更名。雷同於下面代码,假如在BCB2006下安装,就要本身修改这个文件。
{$IFDEF VER180} //假如是用BDS2006编译
{$IFDEF BCB} //BCB2006
{$DEFINE VER140} //那麽回收B6一样的编译开关
{$ELSE} //Delphi2006
{$DEFINE VER170} //那麽回收D9一样的编译开关
{$ENDIF}
{$ENDIF}
要用正确的编译开关才气编译正确。至於如何改,那要看详细的文件才行,这个一般也不难改。
4、关於DesignEditors这个单位的问题 , DCP文件的利用。
在BCB2006中,PAS代码假如包括了这个DesignEditors单位,会引起编译失败,原因是BCB2006并没有提供DesignEditors所要的全部源码,这里会提示说找不到Proxie这个文件。但是照旧有要领安装的。办理方法是通过.dcp(Delphi Compiled Packages)文件:
在 Project Options — Pascal Compiler(Dcc32) — Other Options 页 ,有个use package .dcps when compling , 把其选上,同时填上所要的.dcp文件的名字,DesignEditors所需要的.dcp名字是designide(只填名称就可以了,不要加後缀名哦),填上所要的dcp文件後,DesignEditors的问题得以办理。
在BCB6中,则是将这个dcp文件插手项目,或指定毗连对应的lib文件。
5、代码中的编译错误
这里指安装在B2006的控件才会碰上,因为控件没有for 2006 的,所以才有这问题,过一段时间控件进级,就没这种问题了。
这只能是见招拆招了,没有其他步伐。如rxlib中的变量与B2006的TControl新增属性重名, ehlib中的因2006中TFieldType范例的增加要增加相对应的匹配项。
#p#副标题#e#
6、通过编译後链接时呈现的错误。 这就是众人讨厌的link av 错误
呈现这范例错误时,首先要记得查抄上面说的留意事项,然後才举办後续的排错事情。切记。这时要举办的也就是修改项目文件了。
这个在BCB6或BCB2006测试版中支持都欠好,正式版还未知如何。是一个大短处,令人心烦。假如有多个包要修改,发起利用东西UEdit32来帮助这项事情。在外部修改了包文件後要在BCB中封锁该项目从头打开後才生效,不要被BCB谁人提示疑惑了。
要修改包文件,先先容一下包文件的内容 :(Borland真应该本身做出一个东西修改本身的包文件)
bpl项目文件用XML名目,大部门一看就大白,说一下与linker有关的部门。
<LINKER>
<ALLOBJ value="c0pkg32.obj $(PACKAGES) Memmgr.Lib sysinit.obj $(OBJFILES)"/>
<ALLRES value="$(RESFILES)"/>
<ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cp32mti.lib"/>
<OTHERFILES value=""/>
</LINKER>
这里: $(PACKAGES) 是指上面界说的 PACKAGES value 的全部。$(OBJFILES).ALLOBJ ALLRES 这两项一般不呈现什麽问题。
ALLLIB 这项问题多,是LINK AV错误的起源地之一。内里有两大类:$(LIBFILES) $(LIBRARIES value)
$(LIBFILES) //BCB2006是小写,B6是大写。libraries
$(PACKAGES) //packages
$(SPARELIBS) //sparelibs
看看内里就知道Bolrand做了些什麽,有时会有一大堆没用到的包与库都放在那,这里Borland做得真差劲。
假如你安装了许多包,那麽存盘的时候所有的包与库都将写到这内里,别人假如没有这个包就会堕落。这问题很弱智,但Borland就是这麽做。
把你项目中不消到的包与库删除去。链接时也就不会报找不到什麽什麽库了。
但是照旧呈现link AV ,这时大概出在 libraries 项,查抄libraries项,把重名的删除(还会呈现重名的borland真是),重排一下序次。
sparelibs项假如杂乱就设成与libraries一样。假如你的项目要链接vclsmp.lib,手工在这加上,不少lib在IDE中加不上的都在这手工加上。
设定这里的库列表需要对这些lib库的熟悉,假如不清楚,可copy一另一个项目标libraries项过来试试看。
FILELIST 项,BCB大概会有一些没用的文件也在个中,这里会造成找不到这文件的错误。查抄一下,删除访该项即可。假如路径差池,也改对它吧。
我就是通过修改libraries packages sparelibs FILELIST 办理了不少link av错误。其他选项在project->Optons都能设定,但这几项只有手工改文件。
留意必然要先对上面提到的留意事项仔细做一遍。
关於Uedit
#p#分页标题#e#
用UEdit可以查找函数呈此刻哪个lib或bpi文件中,从而知道该链接哪个lib。利用哪个bpi。当做内容替换时Uedit也很关心。正确地毗连lib bpi文件及利用dcp文件,可办理利用Borland没给出源码的那部门单位链接失败的问题(全编译时失败)
关於B2006下安装可参考: http://community.csdn.net/Expert/topic/4440/4440033.xml?temp=.9818537
我把本身在处理惩罚包的一些要领写下来,供各人参考,但愿能获得指正。这方面找不到Borand的Help,就做一下抛砖引玉的行动了。这些错误总是令人心烦不已。每次装控件总忙个不断很烦,这原来就不是措施设计自己的工作呀。