首页 > 解决方案 > Delphi 7启动时打开一个cmd

问题描述

每次我运行我的 Delphi 应用程序时,都会打开一个“cmd”窗口,我的一些用户抱怨这个窗口,说它使他们的计算机崩溃,我想了解为什么这个 cmd 窗口打开,以及如何使它不打开。

我的 .dpr 文件是这样的

... 
Frm05715 in 'fontes\Frm05715.pas' {Form05715}, 
Frm99903 in 'fontes\Frm99903.pas' {Form99903}; 
{$R *.res} 
begin 
Application.Initialize; 
... 
Application.Run; 

并且 cmd 窗口甚至在 Application.Initialize 之前打开,这是运行的第一行

标签: delphidelphi-7

解决方案


正如我在评论中解释的那样,调试它的一种方法是Application.Run在您的 .Dpr 文件中放置一个断点。

如果 cmd 窗口在断点触发之前打开,则 cmd 窗口很可能在您的一个单元的初始化代码中打开,这将很容易调试。您可以按照我对此 q的回答中的步骤进行操作。

如果您在 System.Pas 中检查Count变量的值InitUnits,您可能会惊讶它有多高,通常超过 200。但是,您可以使用二分搜索通过在行上放置断点来快速识别有罪的单元

TProc(P)();

并将其通过计数最初设置为 count / 2。一旦您确定了有问题的单元,您可以使用调试器的Trace into(F7) 命令来识别启动 Cmd 窗口的代码,如果从检查中不明显的话单元的初始化代码。


推荐阅读