这段程序能完成什么功能????????(高手请关注)(80分)

  • 主题发起人 主题发起人 龙飘渺
  • 开始时间 开始时间

龙飘渺

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure Log(S: string);
begin
{$IFDEF DEBUG_LOG}
FCriticalSection.Enter;
s := FormatdateTime('hh:nn:ss zzz ', Now) + s + #13#10;
FFileDebug.Write(s[1], Length(s));
FCriticalSection.Leave;
{$ENDIF}
end;
 
条件编译
{$IFDEF XX} //如果定义了XX,则执行它与{$ENDIF}之间的语句
XX的定义可以用下面的语法 {$DEFINE XX}
讲这些你明白了吗?
 
那它的执行结果怎样可以看到啊??????
 

[red]
如果XX这个条件变量已经存在,就执行{$IFDEF}和{$ENDIF}之间的语句,否则就不执行,你可以试一下,当你没有定义XX]的时候,这个语句中间的语句即使有错误,编译器都不提示你。取消定义用{$UNDEF XX}语句
[/red]
 
看看帮助啊,条件编译指令罢了,
 
procedure Log(S: string);
begin
{$IFDEF DEBUG_LOG} // 前面有人说过了。
FCriticalSection.Enter;
// 定义log的信息内容
s := FormatdateTime('hh:nn:ss zzz ', Now) + s + #13#10;
// 调试信息类(文件),写入信息内容。
FFileDebug.Write(s[1], Length(s));
FCriticalSection.Leave;
{$ENDIF}
end;

也就是说这个函数,是在任何时候都可以调用的,但是只有在调试的状态下才工作。
 
哦,我明白了。也就是说,在软件正式使用的时候,是不会在调用这个函数了。对吗???
 
这是程序编译的一个条件开关!
 
后退
顶部