Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 2 462

Раздел: Delphi » Прочее
/ вопрос открыт /

Здравствуйте, эксперты!
Новый вопрос возник в продолжение вопроса №2455.
Благодаря помощи экспертов и подсказок, запуск консольного приложения выполняю так: (см. приложение).
Все прекрасно работает, НО только в отладочном режиме (из-под Делфи). Как только запускаю ехе-шник дает ошибку такого типа:
"Access violation at 770F58C8 in module ‘ntdll.dll’. Read of address 00010044".
Как быть, подскажите, пожалуйста!

Приложение:
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. var
  3. ProcInfo: TProcessInformation;
  4. StartupInfo: TStartupInfo;
  5. ProcessInformation: TProcessInformation;
  6. begin
  7. GetStartupInfo(StartupInfo);
  8. with StartupInfo do
  9. begin
  10. wShowWindow := SW_HIDE;
  11. dwFlags := STARTF_USESHOWWINDOW;
  12. end;
  13. Win32Check(CreateProcess(nil, 'command.com /c GRWAVE.EXE < Input.inp > Output.out',
  14. nil, nil, FALSE, CREATE_NEW_CONSOLE, nil, nil, StartupInfo, ProcessInformation));
  15. WaitForSingleObject(ProcInfo.hProcess, INFINITE);
  16. Win32Check(CloseHandle(ProcInfo.hProcess));
  17. end;


Драганов Василий Михайлович Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Драганов Василий Михайлович (статус: Посетитель)
Вопрос отправлен: 26 февраля 2009, 22:29
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 5; последнее сообщение — 27 февраля 2009, 10:29; участников в обсуждении: 3.
Death_Master

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

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]:

Скажем так, если бы всё было на паскале, то задача заметно бы упростилась?
Галочка "подтверждения прочтения" - вселенское зло.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:53
Выполнено за 0.02 сек.