CreateProcess въпросче
3 отговора
236 прегледа
CreateProcess въпросче
здравейте, има ли някой с повече опит при използването на CreateProcess.
значи въпроса ми е малко специфичен. създавам си процес без грижи и го стартирам, но стартираният процес е конзолно приложение.
всичко дотук работи ОК, но ако конзолното приложение се опита да аксесне например нулев указател:
Pointer: PChar;
...
Pointer := nil;
Pointer[0] := 'a';
приложението зависва на инструкцията Pointer[0] := 'a';
ако се стартира от DOS промпт си изгърмява много хувабо. а на мен точно това искам да се случи и след като го стартирам с CreateProcess, за да мога да го рестартирам след като WaitFor... излезе.
за момента ми седи зависнало и какво ли не опитах и ровех надълбоко из WinAPI хелповете. нищо не помогна.
благодаря за каквато и да е помощ.
значи въпроса ми е малко специфичен. създавам си процес без грижи и го стартирам, но стартираният процес е конзолно приложение.
всичко дотук работи ОК, но ако конзолното приложение се опита да аксесне например нулев указател:
Pointer: PChar;
...
Pointer := nil;
Pointer[0] := 'a';
приложението зависва на инструкцията Pointer[0] := 'a';
ако се стартира от DOS промпт си изгърмява много хувабо. а на мен точно това искам да се случи и след като го стартирам с CreateProcess, за да мога да го рестартирам след като WaitFor... излезе.
за момента ми седи зависнало и какво ли не опитах и ровех надълбоко из WinAPI хелповете. нищо не помогна.
благодаря за каквато и да е помощ.
Re: CreateProcess въпросче
Дай малко код (този, с който стартираш процеса и този при който стартирания процес зависва), че ми е трудно да пресъздам проблемната ситуация. Кажи също така и с кои версии на Delphi и Windows правиш теста?
Mixy
Mixy
Редактирано от Mixy на
Re: CreateProcess въпросче
Трябва първо да заделиш памет(чрез GetMem(...)) и тогава да присвояваш Pointer[0]:='a'
Re: CreateProcess въпросче
Доколкото разбрах, човека точно това цели - да предизвика грешка в програмата. Но при дадени условия грешката се появява, а при други, програмата увисва на грешния оператор. Целта е да се разбере, защо се получава това.
Mixy
Mixy