我有一个奇怪的问题。我有一个DUnit(Delphi Berlin)应用程序,我需要以GUI(在我的开发机器上)和控制台应用程序(在构建机器上)运行。我刚刚复制了项目文件,重命名了它。我有平常:
{$IFDEF CONSOLE_TESTRUNNER}
{$APPTYPE CONSOLE}
{$ENDIF}
在一个应用程序中,我定义了CONSOLE_TESTRUNNER条件定义,而在另一个应用程序中,我没有。
如果我编译控制台应用程序,它就可以作为控制台应用程序使用。但是,如果我构建它然后它作为GUI应用程序运行。 (在GUI或命令行中)我甚至尝试删除条件定义并将其显式设置为{$ APPTYPE CONSOLE},以删除等式中的条件定义,但随后应用程序只抛出一个EInOutError I / O错误105.我猜它正在尝试写入输出但是失败了。但为什么呢?