RT

解决方案 »

  1.   

    {$ifdef }可以判断一个标识是否存在,这里判断是purepascal版本。部分Delphi的内核源码同时提供两个版本,即“PUREPASCAL”和“BASM”版本。Delphi内核是以BASM版本编译的,个人认为PUREPASCAL版本应该可以认为是原生的pascal吧
      

  2.   

    系统预定义的条件编译指令,讲白了就是一个编译开关
    {$IFDEF PUREPASCAL}在VCL源码特别是内核源码中随处都有,实际上由于当年“Borland工程师们有心将Delphi语言做成pure language”的原因,对于很多底层代码采用两种实现,一种称为BASM,即汇编实现,一种则是PUREPASCAL,纯pascal语言实现类似的还有编译器版本开关,如
    {$IFDEF VER100} // D3
    {$IFDEF VER110} // CB3
    {$IFDEF VER120} // D4
    {$IFDEF VER125} // CB4
    {$IFDEF VER130} // D5 or CB5
    {$IFDEF VER140} // D6 or CB6
    {$IFDEF VER150} // D7
    {$IFDEF CIL}    // D8
    {$IFDEF VER170} // D9(D2005)
    ...
      

  3.   

    预编译指令相当于if else 
    不过这个是在编译时有效,if else 是在程序运行时候有效
      

  4.   

    这个开关可以在哪里打开呢?比如我希望我的代码是PUREPASCAL,在工程选项中打不开