是什么时候?IsConsole在Delphi中为true



根据系统。在过去,它被记录为True if compiled as console app。在系统。另外,还有一个赋值

{$IFDEF LINUX}
  IsConsole := True;
...

我有一个奇怪的问题,其中一个应用程序是从Delphi应用程序启动,使用ShellExecute,然后它运行到这个代码,引发(意外)异常

  if System.IsConsole then
    raise Exception.Create(Msg)

应用程序没有使用Project/Options/Linking/Generate console application编译。还有什么可以将IsConsole设置为true?


注意,在Delphi XE2中,OSX应用程序不能使用这个变量,因为它总是为真。参见QC条目98956和为什么我的OSX FireMonkey应用程序认为它是一个控制台应用程序?

发现:使用dcc32.exe和dpr/cfg文件创建了可执行文件,其中cfg包含一行

-cc

创建控制台应用程序。

Delphi 2009 Enterprise IDE在Project/Options/Linking/Generate console application对话框中不显示此设置。该应用程序是从较旧的Delphi版本移植过来的,可能多年来出现了一些问题。

最新更新