以MustangPeakCommonLib.exe控件为例,想让它支持Delphi2010,就需要在D:Program FilesCommon LibraryMustangpeakCommon LibrarySourceCompilers.inc文件里手动增加:
{$ifdef VER210}
{$define COMPILER_14}
{$endif VER210}
{$ifdef COMPILER_14}
{$define COMPILER_1_UP}
{$define COMPILER_2_UP}
{$define COMPILER_3_UP}
{$define COMPILER_4_UP}
{$define COMPILER_5_UP}
{$define COMPILER_6_UP}
{$define COMPILER_7_UP}
{$define COMPILER_8_UP}
{$define COMPILER_9_UP}
{$define COMPILER_10_UP}
{$define COMPILER_11_UP}
{$define COMPILER_12_UP}
{$define COMPILER_14_UP}
// Backwards compatibility
{$define DELPHI_2_UP}
{$define DELPHI_3_UP}
{$define DELPHI_4_UP}
{$define DELPHI_5_UP}
{$define DELPHI_6_UP}
{$define DELPHI_7_UP}
{$define DELPHI_8_UP}
{$define DELPHI_9_UP}
{$define CPPB_3_UP}
{$define CPPB_4_UP}
{$define CPPB_5_UP}
{$define CPPB_6_UP}
{$ifdef BCB}
{$define CPPB}
{$else}
{$define DELPHI}
{$endif}
{$endif}
说明:VER210是内嵌在编译器中的,为了让编译器认识当前这个控件,就必须增加$define COMPILER_14这句话,这个标记用来管理后面的详细情况。
如果修改完了,编译器还是不认,这是怎么回事?原因还在于要把Compilers.inc文件的路径加到Lib路径里,否则Delphi连这个文件都找不到,又怎么会认识你的控件呢?
当然,还得把
EasyListviewD12.dpk
EasyListviewD12D.dpk
分别复制一份,把它们的名字改成:
EasyListviewD14.dpk
EasyListviewD14D.dpk
然后用记事本分别打开它的内容,见到12就换成14,就行了!
有时候,同一个控件,还要改多次Compilers.inc,比如:
D:Program FilesMustangpeakEasyListviewDesignCompilers.inc
D:Program FilesMustangpeakEasyListviewSourceCompilers.inc
都要改,否则Design下的源文件还是不认识这个编译器,因为它们都只认当前目录下的Compilers.inc文件,它们是这样写的:{$I Compilers.inc} 完全不带任何路径。