什么时候Delphi中的System.IsConsole是真的?

时间:2011-08-10 13:42:42

标签: delphi console

根据System.pas,它被记录为True if compiled as console app。在System.pas中,还有一个赋值

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

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

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

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


请注意,在 Delphi XE2 中,OSX应用程序无法使用此变量,因为它始终为true。请参阅QC Entry 98956Why Does My OSX FireMonkey App Think It Is a Console App ?

1 个答案:

答案 0 :(得分:5)

找到它:可执行文件是使用dcc32.exe和dpr / cfg文件创建的,cfg包含一行

-cc

创建一个控制台应用程序。

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