delphi - 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 之前打开,这是运行的第一行
解决方案
正如我在评论中解释的那样,调试它的一种方法是Application.Run
在您的 .Dpr 文件中放置一个断点。
如果 cmd 窗口在断点触发之前打开,则 cmd 窗口很可能在您的一个单元的初始化代码中打开,这将很容易调试。您可以按照我对此 q的回答中的步骤进行操作。
如果您在 System.Pas 中检查Count
变量的值InitUnits
,您可能会惊讶它有多高,通常超过 200。但是,您可以使用二分搜索通过在行上放置断点来快速识别有罪的单元
TProc(P)();
并将其通过计数最初设置为 count / 2。一旦您确定了有问题的单元,您可以使用调试器的Trace into
(F7) 命令来识别启动 Cmd 窗口的代码,如果从检查中不明显的话单元的初始化代码。
推荐阅读
- ios - Xcode 中的文件位置参考问题
- fullcalendar - fullCalendar 从 0 开始的 24 小时时间格式
- python - 我希望 request.POST[variable name] 只有在模板输入中存在变量名时才执行
- python - 存储 numpy 数据的最紧凑方式是什么?
- python - 名称“get_pages_count”未定义
- c++ - 从链表程序中的 insert_node 函数返回指向我当前对象的指针或引用
- spring - 身份验证异常
- python - How can I connect front-end with back-end?
- python - 应用组卷积,其中每个组都被限制为具有相同的权重
- seaborn - 如何摆脱 Seaborn 热图中的 x-ticks 和轴之间的空间?