每次我运行Delphi应用程序时,都会打开一个“ cmd”窗口,并且一些用户抱怨该窗口崩溃,称该计算机崩溃了,我想了解为什么打开此cmd窗口以及如何使其不打开。
我的.dpr文件是这样的
...
Frm05715 in 'fontes\Frm05715.pas' {Form05715},
Frm99903 in 'fontes\Frm99903.pas' {Form99903};
{$R *.res}
begin
Application.Initialize;
...
Application.Run;
Run Code Online (Sandbox Code Playgroud)
并且cmd窗口甚至在Application.Initialize之前打开,这是运行的第一行
Mar*_*ynA 10
正如我在评论中解释的那样,一种调试方法是Application.Run在.Dpr文件中放置一个断点。
如果cmd窗口在断点跳闸之前打开,则cmd窗口可能已在您的单元之一的初始化代码中打开,这很容易调试。您可以按照我对q的回答中的步骤进行操作。
如果在System.Pas中检查Count变量的值InitUnits,可能会感到惊讶,它的值通常很高,通常超过200。但是,您可以使用二进制搜索通过在行上放置一个断点来快速识别有罪单位
TProc(P)();
Run Code Online (Sandbox Code Playgroud)
并将其通过计数最初设置为count /2。一旦确定了相关单元,就可以使用调试器的Trace into(F7)命令来标识启动Cmd窗口的代码,如果通过检查无法发现此代码。单元的初始化代码。