Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 27.02.2016
Сообщений: 1
1

Процессы и Windows

28.02.2016, 10:30. Показов 3194. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!
Возникла проблема при выполнении лабораторной работы. Не понимаю вообще, что делать.
Задача: Осуществление взаимодействия между родительским процессом (считывает числа из файла) и процессом потомком(складывает их и выводит сумму).
Сумма должна вывестись в консольное окно.
Проблема сама как очевидно в слове "процесс". Прочитала про функцию CreateProcess. Но при реализации своей лабы не получается ничего.
Вот код на с++:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <stdio.h> 
#include <iostream> 
#include <fstream> 
#include <Windows.h>
 
using namespace std;
 
void main()
{
    FILE * f;  fopen_s(&f, "masha.txt", "r");
    if (!f) cout << "There is no way to find your file! Sorry....";
    int * a = new int[7];
    int i = 0;
    while (!feof(f))
    {
        fscanf_s(f, "%i", &a[i]);
        i++;
    }
    for (int i = 0; i < 7; i++)
        cout << a[i] <<" ";
 
    STARTUPINFO si;
    PROCESS_INFORMATION pi;
    TCHAR CommandLine[] = TEXT("becit1");
    ZeroMemory(&si, sizeof(si));
    si.cb = sizeof(si);
    ZeroMemory(&pi, sizeof(pi));
    if (!CreateProcess(NULL, // Не используется имя модуля 
        CommandLine,          // Командная строка
        NULL,                 // Дескриптор процесса не наследуется. 
        NULL,                 // Дескриптор потока не наследуется. 
        FALSE,                // Установка описателей наследования
        0,                    // Нет флагов создания процесса
        NULL,                 // Блок переменных окружения родительского процесса
        NULL,                 // Использовать текущий каталог родительского процесса
        &si,         // Указатель на структуру  STARTUPINFO.
        &pi)           // Указатель на структуру информации о процессе.
        )
 
        printf("CreateProcess failed.\n");
    WaitForSingleObject(pi.hProcess, INFINITE);   //ждем окончания дочернего процесса
 
    CloseHandle(pi.hProcess); // освобождаем ресурсы
    CloseHandle(pi.hThread);
    system("pause");
    
}
Несомненно к этому проекту подключен через обозреватель решений другой проект "becit1".
Может, кто-нибудь знает что нужно сделать? Сидела над лабой несколько дней, а скоро ее надо сдать.

Добавлено через 1 минуту
Ах, да. Реализация должна быть под Windows. В среде visual studio

Добавлено через 14 часов 12 минут
Просто моя программа должна в качестве дочернего процесса запускать проект "becit1". А она наверное его не видит, процесс не создается и выскакивает сообщение "createprocess failed"
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.02.2016, 10:30
Ответы с готовыми решениями:

Процессы в windows
Всем привет. Я нуб по программированию в Delphi но у меня есть вопрос. Может есть у когонибуть...

Процессы в OS Windows
Создать программу в которой с помощью функции ShellExecute открывается стандартный калькулятор...

Процессы в Windows
Вообщем, есть проблема при работе с процессами. На диске существует некий процесс с именем...

Процессы, потоки (windows)
Доброго времени суток! Возникла такая задача: изучить строение потоков и процессов в Windows. Есть...

2
903 / 424 / 159
Регистрация: 02.04.2014
Сообщений: 1,206
01.03.2016, 19:07 2
Бедняжка. . ты видимо совсем не читала документацию по ф-ции CreateProcess. А там написано, что если первый параметр == NULL, то второй должен быть именем запускаемого модуля. Т.е "CommandLine" должно быть путем к .exe файлу. Не именем проекта "becit1", а путем к скомпилированному becit1.exe Например: c:\MyProjects\becit1\Release\becit1.exe
0
11 / 11 / 8
Регистрация: 13.04.2015
Сообщений: 159
03.03.2016, 13:05 3
Anna06101995, фото в студию
0
03.03.2016, 13:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.03.2016, 13:05
Помогаю со студенческими работами здесь

Windows 7 не завершает процессы
При выходе из программ повторно включить нельзя тк комп выдает не завершён процесс выйдете из...

Все процессы windows не работают
Решил оптимизировать компьютер и полазил в настройках автозагрузки msconfig. Случайно отключил...

Windows 7. Определённые процессы грузят процессор
На компе видюха GeForce 9600, процессор Core 2 Duo, памяти 2 гб. Установлена Windows 7...

Лишние процессы при загрузке Windows XP!
Суть вопроса вот в чем. Запугружается винда, захожу в диспетчер задач, и вижу в процессах, exe-шник...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru