|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Апр 11, 2004 23:29:10 Имеется следующая проблема : При многократном (несколько сотен раз) запуске и закрытии одной и тойже проги начинает глючить виндовс, а затем прога вообще не запускается. Проверено на нескольих различных прогах, в том числе и от самой MS. Кто-нибудь знает, в чем тут дело и можно ли как-то побороть данный глюк? |
|
|
Дата: Апр 11, 2004 23:39:31 GDI leakage? |
|
|
Дата: Апр 11, 2004 23:45:36 я не силен в английском... Прога консольная, под win32. Под глюками подразумеваю общие тормоза, сеть перестает работать и даже пинговаться, прога вылетает сразу после запуска, другие проги тоже не запускаются. Если перестать ее запускать и подождать несколько десятков секунд, то все восстанавливается. |
|
|
Дата: Апр 12, 2004 13:22:32 This symptom is often also referred to as "windows must die"... |
|
|
Дата: Апр 12, 2004 13:56:24 "windows must die"... Это невозможно пока, поскольку моя прога должна быть именно под Win32, так что must die невозможен. Мне бы побороть его как-нибудь, глюк этот... |
|
|
Дата: Апр 12, 2004 15:13:31 Прогнать прогу под Bounds Checker и посмотреть, утечку каких ресурсов он покажет. Правда, старые версии BC утечки некоторых ресурсов (в частности, мультимединыйх таймеров) не ловили. |
|
|
Дата: Апр 12, 2004 15:19:55 Диспетчер задач\Вид\Выбрать столбцы ? |
|
|
Дата: Апр 12, 2004 16:32:56 посмотреть, утечку каких ресурсов он покажет Обязательно попробую, но смутно понимаю, что это даст. Исходников проги то нет, ну, допустим, будет там утечка чего-либо, а как я смогу из своей проги, которая многократно вызывает другую, глючную, устранить утечку? Хотя... Обязательно попробую! |
|
|
Дата: Апр 12, 2004 16:45:35 Каким образом вызывается глючная прога? Может приведи кусок кода с CreateProcess()? |
|
|
Дата: Апр 12, 2004 19:54:55 там не CreateProcess(), там SHELLEXECUTEINFO ... Попробую с CreateProcess()... |
|
|
Дата: Апр 20, 2004 11:34:03 может, кто-нить скинет примерчик. Допустим, задача такая - есть папка с кучей файлов *.bmp, надо каждый из них зажать в свой архив rar: 00001.bmp ->00001.rar 00002.bmp ->00002.rar .... 00099.bmp ->00099.rar ... для зажатия использовать консольную версию rar.exe. Я ищу с findfirst, findnext, для каждого найденнного файла формирую командную строку для rar и запускаю CreateProcess(),жду, пока завершится и ищу дальше. Примерно через 900-1000 запусков все виснет, тормозит, комп из сетки вываливается, rar не запускается... Но цикл крутится и прога моя нормально завершается, если ее закрыть. И через секунд 5-10 все нормально - и сетка появляется, и не тормозит... Помогите пожалуйста... |
|
|
Дата: Апр 20, 2004 11:37:38 Забыл сказать - CreateProcess() запускаю точно так, как сказано в MSDN |
|
|
Дата: Апр 20, 2004 11:52:58 А винда какая? Если 2К+, то почему бы не пользоваться простым батником? Вот такой батник я писал для себя, когда понадобилось: rem Добавление каждой подпапки текущей папки в отдельный zip-архив rem Внимание! Имена подпапок "первого уровня" не должны содержать пробелов. for /D %%i in (*) do "d:\program files\winrar\winrar.exe" a -afzip -r -ibck -ep1 %%i.zip %%i\*По твоему описанию похоже, что утечки именно в твоей проге. Если с использованием батника проблема останется, тогда будем думать дальше. P.S. В твоем случае наверное стоит добавить start /w перед именем экзешника... P.P.S. Кстати, а твоя прога - тоже консольная? |
|
|
Дата: Апр 20, 2004 13:00:51 попробую сегодня... Может и в проге, т.к. при смене архиватора на arj, pkzip проблема остается... |
|
|
Дата: Апр 21, 2004 12:06:40 Все, проблема решена, всем спасибо за отклики! Оказалось, что хэндл процесса надо ЗАКРЫВАТЬ после завершения процесса, а я его просто обнулял. Лоханулся... Две недели на поиски глюка угробил... Теперь все работает как надо. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.097 |