Delphi 7 открыть cmd при запуске - PullRequest
3 голосов
/ 06 ноября 2019

Каждый раз, когда я запускаю свое приложение Delphi, открывается окно 'cmd', и некоторые из моих пользователей жалуются на это окно, говоря, что оно ломает их компьютер, я хочу узнать, ПОЧЕМУ это окно cmd открыто, и как сделать, чтобы оно неopen.

Мой файл .dpr выглядит следующим образом

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

И окно cmd открывается еще до Application.Initialize, который является первой строкой, которая запускает

1 Ответ

10 голосов
/ 06 ноября 2019

Как я объяснил в комментарии, один из способов отладки - это поставить точку останова на Application.Run в вашем файле .Dpr.

Если окно cmd открывается до срабатывания точки останова, окно cmd, скорее всего, открывается в коде инициализации одного из ваших модулей, который будет легко отладить. Вы можете сделать это, выполнив шаги из моего ответа на this q .

Если вы проверите значение переменной Count в InitUnits в System.Pas, вы можетеУдивлен, насколько он высокий, часто более 200. Однако вы можете использовать двоичный поиск, чтобы быстро идентифицировать виновную единицу, поставив точку останова на строке

TProc(P)();

и первоначально установив счетчик проходов в count / 2После того как вы определили рассматриваемый модуль, вы можете использовать команду отладчика Trace into (F7), чтобы определить код, который запускает окно Cmd, если это не очевидно из проверки кода инициализации модуля.

...