Текущий архив: 2005.10.23;
Скачать: CL | DM;
ВнизОшибка при createprocess Найти похожие ветки
← →
Pasha L © (2005-09-26 00:05) [0]Здравствуйте. Возникла непонятная проблема с createprocess. Вызываю его а мне выползает сообщение об ошибке.
The application failed to initialize properly (0xc0000142). Click on OK to terminate the application.
И при этом createprocess возвращает true. При вызове winexec для запуска той же проги всё происходит без запинки. Но в случае с winexec мне не дается хэндл запущенного процесса, что меня не устраивает. Пробовал ещё несколько программ. Вылезает эта же ошибка.
← →
Lamer@fools.ua © (2005-09-26 00:28) [1]>>Pasha L © (26.09.05 00:05)
Код засекречен?
← →
Lamer@fools.ua © (2005-09-26 00:28) [2]P.S. В смысле, исходный код.
← →
jack128 © (2005-09-26 00:34) [3]из хелпа
CreateProcess returns without waiting for the new process to finish its initialization. For example, the creating process would use WaitForInputIdle before trying to find a window associated with the new process
← →
Leonid Troyanovsky © (2005-09-26 09:58) [4]
> Pasha L © (26.09.05 00:05)
> Вызываю его а мне выползает сообщение об ошибке.
> The application failed to initialize properly (0xc0000142).
Спорю на пару бит, что TStartupInfo не инициализирована (properly).
--
Regards, LVT.
← →
Pasha L © (2005-09-26 18:34) [5]
procedure docommand(aname,coms:string);
var
secattr:TSecurityAttributes;
procinfo:TProcessInformation;
startinfo:TStartupInfo;
nowpath:string;
begin
with secattr do begin
nLength:=sizeof(secattr);
lpSecurityDescriptor:=nil;
bInheritHandle:=bool(true);
end;
with startinfo do begin
cb:=SizeOf(startinfo);
dwFlags:=STARTF_USESHOWWINDOW or STARTF_USESTDHANDLES;
wShowWindow:=SW_HIDE;
end;
nowpath:=extractfilepath(paramstr(0));
nowpath:=copy(nowpath,1,length(nowpath)-1);
createprocess(pchar(aname),pchar(aname+" "+coms),@secattr,@secattr,bool(true),0,nil,pchar(nowpath),startinfo,procinfo);
В частности вызываюdocommand("brcc32.exe","my.rc")
. Оба эти файла находятся в папке с запускаемой программой.
← →
Leonid Troyanovsky © (2005-09-26 18:48) [6]
> Pasha L © (26.09.05 18:34) [5]
> with startinfo do begin
> cb:=SizeOf(startinfo);
> dwFlags:=STARTF_USESHOWWINDOW or STARTF_USESTDHANDLES;
>
> wShowWindow:=SW_HIDE;
Хе-хе. Где мои пара битов? Обнулять startinfo будет Пушкин?
Как и хендлы закрывать?
Кроме того, Win32Check(CreateProcess()).
--
Regards, LVT.
← →
Leonid Troyanovsky © (2005-09-26 18:57) [7]
> Pasha L © (26.09.05 18:34) [5]
> эти файла находятся в папке с запускаемой программой.
И еще: раз уж brccc32 помещен в ту самую библиотеку,
то откуда он узнает про нужные ему библиотеки?
Или они тоже туда помещены в ту самую папку? ;)
--
Regards, LVT.
← →
GuAV © (2005-09-26 19:07) [8]И зачем STARTF_USESTDHANDLES, если ни не заданы ?
← →
Pasha L © (2005-09-26 23:31) [9]Leonid Troyanovsky © (26.09.05 18:57) [7]
Для работы brcc32.exe ничего вспомогательного не требуется.
> Обнулять startinfo будет Пушкин?
> Как и хендлы закрывать?
Поясните, пожалуйста. Что именно обнулять? Какие хэндлы закрывать?
← →
Piter © (2005-09-27 00:26) [10]Pasha L © (26.09.05 23:31) [9]
Что именно обнулять?
видимо, startinfo
← →
Германн © (2005-09-27 01:24) [11]2 Pasha L © (26.09.05 23:31) [9]
>Что именно обнулять?
У тебя startinfo - локальная переменная процедуры docommand.
Имхо, область памяти, на которую она указывает заполнена какими-то более - менее случайными значениями.
← →
Leonid Troyanovsky © (2005-09-27 09:02) [12]
> Pasha L © (26.09.05 23:31) [9]
> Поясните, пожалуйста. Что именно обнулять? Какие хэндлы
> закрывать?
Такие вопросы, IMHO, для "Начинающих".
FillChar(StartInfo, SizeOf(StartInfo), 0)
или, хотя бы, GetStartupInfo(StartInfo)
Закрывать надо CloseHandle - procinfo.hProcess & procinfo.hThread
сразу после того, как они стали более не нужны.
--
Regards, LVT.
← →
Pasha L © (2005-09-27 17:15) [13]
> Такие вопросы, IMHO, для "Начинающих".
Не спорю, но не буду же я на полтемы обрываться и делать продолжение на форуме "для начинаючих"
А за ответ с разъяснением БОШЬШОЕ СПАСИБО
Страницы: 1 вся ветка
Текущий архив: 2005.10.23;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.039 c