CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

条件编译!!{$DEFINE}

楼主ronaldli(木的)2003-01-06 14:00:39 在 Delphi / VCL组件开发及应用 提问

有一个单元文件被两个工程调用,在一个工程中部分编译,在另一个工程中全部编译。  
          我在部分编译的工程文件中定义{$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

相关问题

  • 条件编译???
  • 条件编译
  • 条件编译问题
  • define预编译一问
  • 高手关注!关于条件编译。。。。。
  • 关于条件编译的问题.
  • 条件编译指令问题
  • 怎样实现条件编译?
  • 关于条件编译 (新手)
  • 这种条件编译能实现吗?

关键词

  • 编译
  • 文件
  • ghdll
  • 单元
  • 条件编译
  • 工程
  • ifndef
  • define
  • 部分

得分解答快速导航

  • 帖主:ronaldli
  • findcsdn
  • pazee

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo