条件编译!!{$DEFINE}
有一个单元文件被两个工程调用,在一个工程中部分编译,在另一个工程中全部编译。
我在部分编译的工程文件中定义{$DEFINE GHDLL},
在单元文件中加入{$IFNDEF GHDLL}和{$ENDIF}
为什么条件编译部分被编译了?也就是说,为什么我定义的{$DEFINE GHDLL}没有作用到单元文件中?
请高手指点!!
我参照的《DELPHI6开发人员指南》P183-184的动态链接库接口单元例程,形式完全一致,但是就不对
问题点数:100、回复次数:7Top
1 楼pazee(耙子)(今年过年不收礼,收礼只收尿不湿)回复于 2003-01-06 14:28:02 得分 0
我觉得
{$DEFINE GHDLL}的作用域是当前单元,这个和c的不同。Top
2 楼ronaldli(木的)回复于 2003-01-06 14:41:08 得分 0
我也觉得了,但是例程是这么写的,难道他错了?Top
3 楼ronaldli(木的)回复于 2003-01-06 15:42:56 得分 0
高手请指点Top
4 楼findcsdn(searchcsdn)回复于 2003-01-06 16:02:43 得分 30
{$DEFINE GHDLL} 这个东东,应该放在需要全部编译的工程内.
{$IFNDEF GHDLL} // ==> 如果定义了GHDLL就编译这部分.
......条件编译的语句;
$ENDIF}
Top
5 楼ronaldli(木的)回复于 2003-01-07 10:02:24 得分 0
请注意:我用的是{$IFNDEF}不是{$IFDEF}Top
6 楼pazee(耙子)(今年过年不收礼,收礼只收尿不湿)回复于 2003-01-07 11:57:10 得分 70
在网上找到了一篇文章,内容和我们说的一样,该预编译指令作用域就是当前文件。Top
7 楼ronaldli(木的)回复于 2003-01-07 13:45:41 得分 0
哦,原来果然是这样,看来还要做成两个单元文件Top




