Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.01.2010, 15:51   #1
Lavisa
Пользователь
 
Регистрация: 28.12.2008
Сообщений: 28
Вопрос Падает вызов CreateProcess

success = CreateProcess(NULL, L"calc.exe", NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi );

Программка выводит окно с меню из одного пункта. При нажатии на этот пункт должен запускаться калькулятор. Как мне кажется, ошибка происходит при вызове CreateProcess, так как непосредственно перед ним отладочное окно выводится, а после уже нет. Значит что-то не так с параметрами, интересно что.

До вызова выполняются команды

ZeroMemory( &si, sizeof( si ) );
si.cb = sizeof( si );

так что si вроде инициализировано...
Lavisa вне форума Ответить с цитированием
Старый 14.01.2010, 05:39   #2
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

Lavisa
После инициализации структура si должна быть еще заполнена не только нулями и размером структуры, вот пример на ассемблере
Код:
;заполняем структуру для запуска
;окно должно появляться в свернутом виде
	MOV STRUP.cb,68
	MOV STRUP.lpReserved,0
	MOV STRUP.lpDesktop,0
	MOV STRUP.lpTitle,0
	MOV STRUP.dwFlags,STARTF_USESHOWWINDOW
	MOV STRUP.cbReserved2,0
	MOV STRUP.lpReserved2,0
	MOV STRUP.wShowWindow,SW_SHOWMINIMIZED
;запуск приложения Winword
	PUSH OFFSET INF;&pi
	PUSH OFFSET STRUP ;&si 
	PUSH 0;NULL 
	PUSH 0;NULL 
	PUSH 0 
	PUSH 0; FALSE 
	PUSH 0; NULL 
	PUSH 0; NULL 
	PUSH OFFSET PATH;PATH DB "C:\Program Files\Microsoft Office\Office\WINWORD.EXE",0	
	PUSH 0;NULL
	CALL CreateProcessA@40

Последний раз редактировалось Mikl___; 15.01.2010 в 04:23.
Mikl___ вне форума Ответить с цитированием
Старый 14.01.2010, 11:55   #3
maxionans
Форумчанин
 
Аватар для maxionans
 
Регистрация: 02.01.2010
Сообщений: 254
По умолчанию

RTFM, батенька. Выдержка из описания CreateProcess:

The Unicode version of this function, CreateProcessW, can modify the contents of this string. Therefore, this parameter cannot be a pointer to read-only memory (such as a const variable or a literal string). If this parameter is a constant string, the function may cause an access violation.
maxionans вне форума Ответить с цитированием
Старый 14.01.2010, 12:46   #4
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

maxionans
< RTFM, батенька
это вы ко мне или к Lavisa?
Mikl___ вне форума Ответить с цитированием
Старый 14.01.2010, 16:08   #5
Crusher
Пользователь
 
Регистрация: 13.12.2008
Сообщений: 27
По умолчанию

"calc.exe" должен быть первым параметром.
Crusher вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
XP падает в синий экран! SKS Windows 8 17.03.2011 09:44
прога падает ровно(!) через 5 минут после старта Tapapax Общие вопросы .NET 8 11.11.2009 15:04
Сервер падает Х) Slusar PHP 2 05.10.2009 22:47
CreateProcess() damned20 Win Api 1 18.09.2009 18:38
Программа падает при добавлении кода, который не используется. Protsv Общие вопросы Delphi 16 03.04.2008 08:01