Поиск:

Ответ в темуСоздание новой темы Создание опроса
> CreateProcess, генерится исключение 
V
    Опции темы
mrbrooks
Дата 23.1.2009, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 2
Всего: 306



Мои приветствия.
Заимел MS VS 2008. Создаю процесс в консольном приложение.
Код
 
int _tmain(int argc, _TCHAR* argv[])
{
    PROCESS_INFORMATION pi;
    STARTUPINFO si;
    ZeroMemory(&si,sizeof(STARTUPINFO));
    ZeroMemory(&pi,sizeof(PROCESS_INFORMATION ));
    si.cb = sizeof(si);
    CreateProcess(NULL,L"cmd.exe",NULL,NULL,FALSE,CREATE_NEW_CONSOLE,NULL,NULL,&si,&pi);
    WaitForSingleObject( pi.hProcess, INFINITE );
    CloseHandle(pi.hProcess);
    CloseHandle(pi.hThread);
    std::cin.get();
    return 0;
}
  
но радость моя была не долгой. Студия встретила меня следущей мессагой:
Код

Первый этап обработки исключения в "0x7c82f284" в "fuck.exe": 0xC0000005: Нарушение прав доступа при записи "0x00402112".
Необработанное исключение в "0x7c82f284" в "fuck.exe": 0xC0000005: Нарушение прав доступа при записи "0x00402112".

Собственно вопрос - а какого ей надо? 

зы. Что характерно Борман 2009 версии - код сожрал и выплюнул ожидаемый результат.


Это сообщение отредактировал(а) mrbrooks - 23.1.2009, 12:16
PM MAIL   Вверх
SenkraD
Дата 23.1.2009, 13:30 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 3.2.2006
Где: Украина::Киев

Репутация: 4
Всего: 23



У меня щас нет студии под рукой, но второй параметер имеет тип  __inout_opt  LPTSTR lpCommandLine,
может из-за этого: она туда что-то дописать пробует и ей места мало

Я с этим столкнулся когда ей хотел константу вторым параметром скинуть


--------------------
 Имеющий язык - да не убоится спросить! 
user posted image
PM MAIL ICQ   Вверх
mrbrooks
Дата 23.1.2009, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 2
Всего: 306



SenkraD, Точно камрад. 
Что же касается меня - то внимательнее надо smile  smile 

Код

int _tmain(int argc, _TCHAR* argv[])
{
    PROCESS_INFORMATION pi;
    STARTUPINFO si;
    ZeroMemory(&si,sizeof(STARTUPINFO));
    ZeroMemory(&pi,sizeof(PROCESS_INFORMATION ));
    si.cb = sizeof(si);
    TCHAR cmd[MAX_PATH] = L"cmd.exe";
    CreateProcess(NULL, cmd,NULL,NULL,FALSE,CREATE_NEW_CONSOLE,NULL,NULL,&si,&pi);
    WaitForSingleObject( pi.hProcess, INFINITE );
    CloseHandle(pi.hProcess);
    CloseHandle(pi.hThread);
    std::cin.get();
    return 0;
}


Добавлено через 59 секунд
Цитата

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.



PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0652 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.