| 
| 
 | Вопрос # 2 462/ вопрос открыт / | 
 |  Здравствуйте, эксперты!Новый вопрос возник в продолжение вопроса №2455.
 Благодаря помощи экспертов и подсказок, запуск консольного приложения выполняю так: (см. приложение).
 Все прекрасно работает, НО только в отладочном режиме (из-под Делфи). Как только запускаю ехе-шник дает ошибку такого типа:
 "Access violation at 770F58C8 in module ‘ntdll.dll’. Read of address 00010044".
 Как быть, подскажите, пожалуйста!
 Приложение:Переключить в обычный режим procedure TForm1.Button1Click(Sender: TObject);var  ProcInfo: TProcessInformation;  StartupInfo: TStartupInfo;  ProcessInformation: TProcessInformation;begin  GetStartupInfo(StartupInfo);  with StartupInfo do  begin    wShowWindow := SW_HIDE;    dwFlags := STARTF_USESHOWWINDOW;  end;  Win32Check(CreateProcess(nil, 'command.com /c GRWAVE.EXE < Input.inp > Output.out',  nil, nil, FALSE, CREATE_NEW_CONSOLE, nil, nil, StartupInfo, ProcessInformation));  WaitForSingleObject(ProcInfo.hProcess, INFINITE);  Win32Check(CloseHandle(ProcInfo.hProcess));end;
|  |   Вопрос задал: Драганов Василий Михайлович (статус: Посетитель)Вопрос отправлен: 26 февраля 2009, 22:29
 Состояние вопроса: открыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 5; последнее сообщение — 27 февраля 2009, 10:29; участников в обсуждении: 3. 
|   | Death_Master (статус: Посетитель), 26 февраля 2009, 23:23 [#1]:С .com файлами уже сложновато.... И есть вероятность, что глючит оболочка отладки....
 А возможно, что глючит сама программа, но это скрывается конструкциями вроде try.. except...
 Обычно захожу по ночам... (60-70%)Если нужно что-то написать, то беру оборудованием, деньгими и пивом(при личной встрече)...
 P.S. Помогаю и рассказываю бесплатно ^_^.....Nyaaa!
 |  
|   | Драганов Василий Михайлович (статус: Посетитель), 27 февраля 2009, 00:04 [#2]:Проверил без command.com: Win32Check(CreateProcess(nil, 'GRWAVE.EXE < Input.inp > Output.out',
 
 результат тот же и сообщение такое же.
 |  
|   | Death_Master (статус: Посетитель), 27 февраля 2009, 00:08 [#3]:а если подставить другой exe ? Это для диагностики: попробуйте xcopy.exe или что-нибудь подобное...
 Если ошибка будет вылезать, тогда это косяк Борланда...
 Обычно захожу по ночам... (60-70%)Если нужно что-то написать, то беру оборудованием, деньгими и пивом(при личной встрече)...
 P.S. Помогаю и рассказываю бесплатно ^_^.....Nyaaa!
 |  
|   | Вадим К (статус: Академик), 27 февраля 2009, 10:20 [#4]:Решил запустить у себя этот код и посмотреть, где и как. Ошибку выдает в обоих варинантах, правда другую - о неверном дескрипторе в вызове CloseHandle. Но там дейстительно плохой дескриптор. Буду вечером изучать подробнее.
 
 Смотрел исходники... многовато, 2800 строк. Правда с них около 900 строк коментариев. Но переписать реально за приемлемое время.
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | Вадим К (статус: Академик), 27 февраля 2009, 10:29 [#5]:Скажем так, если бы всё было на паскале, то задача заметно бы упростилась? Галочка "подтверждения прочтения" - вселенское зло. |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |