Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

создание дочернего процесса. visual с++.

28K
19 ноября 2007 года
getch()
18 / / 11.11.2007
1. Создать дочерний процесс Child (добавить к рабочей области еще один консольный вид проекта, при создании дочернего процесса отвести ему новую консоль) .
2. Передать дочернему процессу через командную строку определенные параметры (массив из пяти целых чисел).
3. В дочернем процессе осуществить вывод минимального из переданных параметров из родительского процесса и возврат его, как кода выхода в родительский процесс. Родительский процесс ожидает результата (окончания работы дочернего процесса) и выводит его на консоль.

помогите пожалуйста кодом) которым можно осуществить эти задачки.
28K
20 ноября 2007 года
getch()
18 / / 11.11.2007
подскажите следущие 2 функции:
1. функция создания дочерненего процесса-???
2. функция передачи доч. процессу параметров-???
28K
21 ноября 2007 года
getch()
18 / / 11.11.2007
Срочно нужна помосчъ. имеется родительский процесс:
Код:
#include "stdafx.h"
#include <iostream>
#include <windows.h>
#include <stdio.h>
#include <conio.h>
using namespace std;
#define BUFSIZE MAX_PATH

int _tmain(int argc, _TCHAR* argv[], _TCHAR* envv[])
{
    TCHAR buf[MAX_PATH];  

    for(int i=0;envv;i++)
    {
        cout<<envv<<endl;
        cout<<endl;
    }

    GetEnvironmentVariable(TEXT("COMPUTERNAME"),buf,MAX_PATH);
    printf(TEXT("\nCOMPUTERNAME=%s"),buf);
    SetEnvironmentVariable(TEXT("COMPUTERNAME"),TEXT("NewQ4"));
    GetEnvironmentVariable(TEXT("COMPUTERNAME"),buf,MAX_PATH);
    printf(TEXT("\nCOMPUTERNAME=%s"),buf);
    GetCurrentDirectory(MAX_PATH, buf);
    printf(TEXT("\nCurrent directory: %s"),buf);
    SetCurrentDirectory(TEXT("C:\\"));
    GetCurrentDirectory(MAX_PATH,buf);
    printf(TEXT("\nCurrent directory: %s"),buf);  

     //-----------------------------The interoperability with the Child process------------------------------

     SECURITY_ATTRIBUTES saProcess;
     saProcess.bInheritHandle=TRUE;
     saProcess.nLength = sizeof(saProcess);
     saProcess.lpSecurityDescriptor = NULL;


     cout<<endl;
    STARTUPINFO si = { sizeof(si) };
    GetStartupInfo(&si);
//  TCHAR buffer[MAX_PATH];

    PROCESS_INFORMATION pi;
    DWORD dwExitCode;
    TCHAR szCommandLine[]=TEXT("jnjn_child 13 20 34 45 12");
    getch();
    // Порождение дочернего процесса.
    BOOL fSuccess=CreateProcess(NULL, szCommandLine, NULL, NULL, FALSE, CREATE_NEW_CONSOLE, NULL, NULL, &si, &pi);
                               
    if(fSuccess)
    { getch();
    //  Закрытие дескриптора потока как только он больше не нужен
        CloseHandle(pi.hThread);
        // Приостанавливаем выполнение главного процесса до тех пор пока дочерний не завершился
        WaitForSingleObject(pi.hProcess,INFINITE);
         // Дочерний процесс завершен; получаем его код завершения.
        GetExitCodeProcess(pi.hProcess,&dwExitCode);
        // Закрываем дескриптор так как он больше не нужен.
        CloseHandle(pi.hProcess);
    }
    else
        cout<<"Failed creating the child process..."<<endl;

    cout<<"The Child has returned '"<<dwExitCode<<"' value"<<endl;
getch();
    return 0;
}

и дочерний процесс:
Код:
#include "stdafx.h"
#include <iostream>
#include <windows.h>
#include <stdio.h>
#include <conio.h>
using namespace std;
#define BUFSIZE MAX_PATH

int _tmain(int argc, TCHAR* argv[])
{getch();
    DWORD x=0;
    DWORD minValue=0;
    minValue=_tstol(argv[1]);
    sscanf(PSTR(argv[1]),"%u",&minValue);
    printf(PSTR(argv[1]));
    for(int i=0;i<argc;i++)
    {
        if(i>1)
        {
            x=_tstol(argv);
            sscanf(PSTR(argv),"%u",&x);
            if(x<minValue)minValue=x;
        }
        printf(argv);
       
       
    }
   
     return minValue;
}

подскажите в чем ошибка при компиляции не может запустить дочерний процесс, не пойму почему...
28K
27 ноября 2007 года
getch()
18 / / 11.11.2007
грешит на dwExitCode....
всю неделю бьюсь над этим кодом, помогите плз кто разбираться с доч.процессами а.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог