{$IFDEF PUREPASCAL}是什么意思 RT 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 {$ifdef }可以判断一个标识是否存在,这里判断是purepascal版本。部分Delphi的内核源码同时提供两个版本,即“PUREPASCAL”和“BASM”版本。Delphi内核是以BASM版本编译的,个人认为PUREPASCAL版本应该可以认为是原生的pascal吧 系统预定义的条件编译指令,讲白了就是一个编译开关{$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)... 预编译指令相当于if else 不过这个是在编译时有效,if else 是在程序运行时候有效 这个开关可以在哪里打开呢?比如我希望我的代码是PUREPASCAL,在工程选项中打不开 在多线程中使用过ZIPTV组件的进!! 莫名的程序编译问题:variant or safe array index out of bounds 如何识别一个进程 pagecontrol与tabsheet标签上的imageindex显示小问题?高手进,在线等....... 那里可以下载dephi4.0 小问题,如何进行错误处理? 数据集中的数据与底层数据保持一致性?? 求Edit控件的这个事件 现在最好的打包软件是什么? 动态库调用出错 类的 相互 调用?? Delphi中把指针类型转换为字符串的问题
{$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)
...
不过这个是在编译时有效,if else 是在程序运行时候有效