6 / 6 / 0
Регистрация: 10.11.2011
Сообщений: 53
|
|||||||||||
1 | |||||||||||
Запустить программу из другой программы в качестве нового процесса10.12.2011, 18:40. Показов 11273. Ответов 18
Метки нет (Все метки)
Нужно запустить программу из другой программы:
Первая программа, которую нужно запустить:
Добавлено через 1 час 31 минуту Еще вопрос: Как сделать так, чтобы в одной программе запустить функцию как новый поток? Например, я принял число N, и потом запускаю вычисление того, является ли оно степенью двойки в новом потоке?
0
|
10.12.2011, 18:40 | |
Ответы с готовыми решениями:
18
Порождение нового процесса и запуск программы в рамках порожденного процесса Запуск еще одного экземпляра программы как нового процесса. Большее из X(i) и Y(i) принять в качестве нового значения X(i), а меньшее - в качестве нового значения Y(i) Программа, запускающая первую программу в качестве вновь созданного процесса |
65 / 71 / 9
Регистрация: 25.06.2009
Сообщений: 244
|
|
10.12.2011, 18:49 | 2 |
какая ошибка то
1
|
6 / 6 / 0
Регистрация: 10.11.2011
Сообщений: 53
|
|
10.12.2011, 18:55 [ТС] | 3 |
Вот такая:
0
|
65 / 71 / 9
Регистрация: 25.06.2009
Сообщений: 244
|
|
10.12.2011, 18:57 | 4 |
дак у вас void WinMain()
если консольное приложение то надо main(), если конечно вы создавали именно консольный проект
1
|
6 / 6 / 0
Регистрация: 10.11.2011
Сообщений: 53
|
|||||||||||
10.12.2011, 19:07 [ТС] | 5 | ||||||||||
Спасибо, теперь работает. Но, когда запускаю Programma2, он запускает Programma1 и программа застревает на
Вот переделанный Programma2:
0
|
65 / 71 / 9
Регистрация: 25.06.2009
Сообщений: 244
|
|
10.12.2011, 19:12 | 6 |
даже число нельзя ввести?
0
|
6 / 6 / 0
Регистрация: 10.11.2011
Сообщений: 53
|
|
10.12.2011, 19:19 [ТС] | 7 |
Да, не вводится. Зависает, после сообщения ввести число
Добавлено через 2 минуты А нет, вводится, но какая-то фигня получается - буквы друг на друга лезут и вводятся в коммандной строке, и результата нет
0
|
65 / 71 / 9
Регистрация: 25.06.2009
Сообщений: 244
|
|
10.12.2011, 19:22 | 8 |
советую сделать открытие проги консольным методом для соответствия
system("Programma_1.exe"); Вместо CreateProc
1
|
6 / 6 / 0
Регистрация: 10.11.2011
Сообщений: 53
|
||||||
10.12.2011, 19:50 [ТС] | 9 | |||||
Спасибо! Получилось)
А как теперь сделать так, чтобы в одной программе спросить "Enter the number", а затем создать новый поток в этой же программе, передать туда число, и вычислить является ли степенью двойки это число?
0
|
65 / 71 / 9
Регистрация: 25.06.2009
Сообщений: 244
|
||||||
10.12.2011, 20:02 | 10 | |||||
я бы сделал так;
1
|
6 / 6 / 0
Регистрация: 10.11.2011
Сообщений: 53
|
||||||
11.12.2011, 19:21 [ТС] | 11 | |||||
Добавлено через 20 часов 4 минуты Что, никто не может помочь? Добавлено через 2 часа 52 минуты Укажите хотя бы в каком месте ошибку искать!!!
0
|
65 / 71 / 9
Регистрация: 25.06.2009
Сообщений: 244
|
||||||
11.12.2011, 20:59 | 12 | |||||
забыл еще дописать вам в тот раз
критическую секцию надо сначала инициализировать было в начале main()
1
|
6 / 6 / 0
Регистрация: 10.11.2011
Сообщений: 53
|
|
11.12.2011, 21:09 [ТС] | 13 |
Спасибо большое! Сам вот тоже рылся в сети и пытался инициализацию сделать.
А теперь финальный штрих: например, сделать 2 потока одинаковых(вычисление явления степени двойки) и для каждого потока дать разные приоритеты, например, максимальный и минимальный и поставить таймер. Запустить по-очереди и в конце выдать результат времени работы каждого потока?? Чтобы я окончательно разобрался с потоками
0
|
65 / 71 / 9
Регистрация: 25.06.2009
Сообщений: 244
|
|
11.12.2011, 21:11 | 14 |
на счет приоритетов ничего не могу сказать, никогда не сталкивался, тут надо специалистов)
а таймер то можно брать функцией GetTickCount(); берем его до выполнения функции и после, и вычитаем результаты тут правда думаю все очень быстро пойдет, надо хотя бы по миллиону раз вычислять функцию в цикле
1
|
6 / 6 / 0
Регистрация: 10.11.2011
Сообщений: 53
|
|||||||||||
12.12.2011, 07:30 [ТС] | 16 | ||||||||||
Вопросы все-таки есть:
1. SetThreadPriority () - как ей правильно пользоватся и куда вписывать? После создания потока или до? 2. Откопал функцию вычисления времени затраченной потоком на работу, но не понял как ею пользоватся:
С потоками разобрался, а время засечь не могу.
Откуда взять значение Created, Exited, Kernel, User???
0
|
65 / 71 / 9
Регистрация: 25.06.2009
Сообщений: 244
|
||||||
12.12.2011, 17:09 | 17 | |||||
что сразу бросается в глаза это
1
|
6 / 6 / 0
Регистрация: 10.11.2011
Сообщений: 53
|
|
13.12.2011, 09:09 [ТС] | 18 |
0
|
65 / 71 / 9
Регистрация: 25.06.2009
Сообщений: 244
|
||||||
14.12.2011, 19:34 | 19 | |||||
0
|
14.12.2011, 19:34 | |
14.12.2011, 19:34 | |
Помогаю со студенческими работами здесь
19
Как запустить программу в качестве системной службы? Как написать вторую программу, чтобы она открывала первую в качестве процесса? Получение переменных из процесса другой программы Составьте UNIX-программу на языке С, порождающую в качестве дочернего процесса свою копию и ожидающую ее завершения Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |