根据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 98956和Why Does My OSX FireMonkey App Think It Is a Console App ?
答案 0 :(得分:5)
找到它:可执行文件是使用dcc32.exe和dpr / cfg文件创建的,cfg包含一行
-cc
创建一个控制台应用程序。
Delphi 2009 Enterprise IDE未在Project/Options/Linking/Generate console application
对话框中显示此设置。该应用程序是从较旧的Delphi版本移植而来的,这些年来可能出现了问题。