Поиск:

Ответ в темуСоздание новой темы Создание опроса
> И опять CreateProcess 
:(
    Опции темы
Zakhar_Shan
Дата 10.7.2009, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 14.6.2007
Где: Тюмень

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



Блин в поиске ничего рабочего для себя не нашел, поэтому обращаюсь за помощью.
Опять же, две консольные проги.
First запускает через CreateProcess Second, лежат в одном каталоге...
Листинги:
First:
Код

int main(int argc, char* argv[])
{
    cout<<"Hello!!! I'm First";
    STARTUPINFO sInf;
    PROCESS_INFORMATION pInf;
    char cmd[] = "Second.exe";
    CreateProcess(NULL, cmd ,
            NULL, NULL, FALSE,
            NULL,
            NULL, NULL, &sInf, &pInf);

    return 0;
}


Second:
Код

int main(int argc, char* argv[])
{
    cout<<"Hello!!! I'm Second";
    return 0;
}



Проблема в том что First запускается, но Second через First   не хочет.
Помогите!!!!


Это сообщение отредактировал(а) Zakhar_Shan - 10.7.2009, 15:57
PM MAIL   Вверх
ИванМ
Дата 10.7.2009, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



StartupInfo, ProcessInfo и sInf; pInf; - разные названия. Как это вообще работает? Глобально что ли первые определены?
PM MAIL   Вверх
mrbrooks
Дата 10.7.2009, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(Zakhar_Shan @  10.7.2009,  14:02 Найти цитируемый пост)
Блин в поиске ничего рабочего для себя не нашел, поэтому обращаюсь за помощью.

Плохо искал  smile Удивительно как вообще твой пример собрался (см. на переменные связанные со структурами). 

Код

int main(int argc, char* argv[])
{
    cout<<"Hello!!! I'm First";
    STARTUPINFO sInf = {0};
    sInf.cb = sizeof(STARTUPINFO);
    PROCESS_INFORMATION pInf;
    char cmd[] = "Second.exe";
    CreateProcess(NULL, cmd , NULL, NULL, FALSE, 0, NULL, NULL, &sInf, &pInf); //вывод из Second в First
    //CreateProcess(NULL, cmd , NULL, NULL, FALSE, CREATE_NEW_CONSOLE, NULL, NULL, &sInf, &pInf); //создание отдельной консоли под Second
    std::cin.get();
    return 0;
}


Добавлено через 51 секунду
Цитата(ИванМ @  10.7.2009,  14:39 Найти цитируемый пост)
StartupInfo, ProcessInfo и sInf; pInf; - разные названия. Как это вообще работает? Глобально что ли первые определены? 

наверно просто косяк с копи-пастом  smile 
PM MAIL   Вверх
586
Дата 10.7.2009, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 57
Всего: 146



Не забывайте закрывать дескрипторы pInf.hThread и pInf.hProcess, если они не нужны.
Код
int main(int argc, char* argv[])
{
    cout<<"Hello!!! I'm First";
    STARTUPINFO sInf = {0};
    sInf.cb = sizeof(STARTUPINFO);
    PROCESS_INFORMATION pInf;
    char cmd[] = "Second.exe";
    CreateProcess(NULL, cmd , NULL, NULL, FALSE, 0, NULL, NULL, &sInf, &pInf); //вывод из Second в First
    //CreateProcess(NULL, cmd , NULL, NULL, FALSE, CREATE_NEW_CONSOLE, NULL, NULL, &sInf, &pInf); //создание отдельной консоли под Second
    CloseHandle(pInf.hThread);
    CloseHandle(pInf.hProcess);
    std::cin.get();
    return 0;
}

PM   Вверх
Zakhar_Shan
Дата 10.7.2009, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 14.6.2007
Где: Тюмень

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



Цитата(ИванМ @  10.7.2009,  14:39 Найти цитируемый пост)
StartupInfo, ProcessInfo 
 - блин, это простите, тупняк, я то в исполняемом файле все правильно сделал, просто чистил  чтоб понятно было на форуме, лишние убрал, и нечаянно заменил

PM MAIL   Вверх
THandle
Дата 10.7.2009, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 25
Всего: 372



Цитата(586 @  10.7.2009,  15:52 Найти цитируемый пост)
Не забывайте закрывать дескрипторы pInf.hThread и pInf.hProcess, если они не нужны.


Ну тогда закрывать их нужно еще только при условии что CreateProcess отработало smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




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


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

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