Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 31, средняя оценка - 4.74
sandye51
программист С++
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
#1

CreateProcess передача параметров процессу - C++

30.04.2011, 22:03. Просмотров 3889. Ответов 7
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "windows.h"
#include "iostream"
#include <conio.h>
 
using namespace std;
 
void main()
{
    STARTUPINFO cif;
    ZeroMemory(&cif,sizeof(STARTUPINFO));
    PROCESS_INFORMATION pi;
    if(CreateProcess(NULL, L"c:\\program files\\winrar\\winrar.exe e C:\\test1.exe С:\\files\\",NULL,NULL,FALSE,0,NULL,NULL,&cif,&pi) == TRUE)
        {
            cout << "process" << endl;
            cout << "handle " << pi.hProcess << endl;
            _getch();
        }   
}
не понимаю чего здесь не так
ошибка
Javascript
1
Unhandled exception at 0x75c10b7b in winrar.exe: 0xC0000005: Access violation writing location 0x011d8364.
просто
C++
1
CreateProcess(L"c:\\program files\\winrar\\winrar.exe", NULL ,NULL,NULL,FALSE,0,NULL,NULL,&cif,&pi)
запускается..
подскажите что не так? :-(
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alex_x_x
бжни
2443 / 1648 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
30.04.2011, 22:22     CreateProcess передача параметров процессу #2
выглядит правдаподобно
попробуйте запустится в режиме отладки и пройтись вверх по стеку вызовов, будет видно где генерится исключение
sandye51
программист С++
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
30.04.2011, 22:23  [ТС]     CreateProcess передача параметров процессу #3
alex_x_x, оно видно, но мне это ни о чем не говорит
C++
1
2
3
4
5
6
int __cdecl atexit (
        _PVFV func
        )
{
        return (_onexit((_onexit_t)func) == NULL) ? -1 : 0;
}
здесь на return
alex_x_x
бжни
2443 / 1648 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
30.04.2011, 22:28     CreateProcess передача параметров процессу #4
попробуйте заменить void main() на int main
хотя конечно слабо верится
вообще это обработчик завершения странно
sandye51
программист С++
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
30.04.2011, 22:35  [ТС]     CreateProcess передача параметров процессу #5
alex_x_x, не помогло
alex_x_x
бжни
2443 / 1648 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
30.04.2011, 22:46     CreateProcess передача параметров процессу #6
попробуйте
wchar_t sz_line[] = L"c:\\program files\\winrar\\winrar.exe e C:\\test1.exe С:\\files\\";
CreateProcess(sz_line, NULL ,NULL,NULL,FALSE,0,NULL,NULL,&cif,&pi)
sandye51
программист С++
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
30.04.2011, 22:49  [ТС]     CreateProcess передача параметров процессу #7
alex_x_x, не вылетает, но и процесс не создается
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.04.2011, 22:54     CreateProcess передача параметров процессу
Еще ссылки по теме:

C++ Передача параметров в функцию
C++ Передача дефолтных параметров
C++ Передача параметров в функцию
C++ Передача параметров в функции
C++ Передача параметров функции

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
alex_x_x
бжни
2443 / 1648 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
30.04.2011, 22:54     CreateProcess передача параметров процессу #8
вылетало потому что ос в процессе выполнения функции меняет передаваемы буфер, оно и помечено __inout_opt LPTSTR lpCommandLine
wchar_t sz_line[] = L"e C:\\test1.exe С:\\files\\";
CreateProcess(L"c:\\program files\\winrar\\winrar.exe", sz_line ,NULL,NULL,FALSE,0,NULL,NULL,&cif,&pi)
Yandex
Объявления
30.04.2011, 22:54     CreateProcess передача параметров процессу
Ответ Создать тему
Опции темы

Текущее время: 02:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru