Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 22.09.2014
Сообщений: 5

Двойное окно: наблюдаются два одноимённых процесса

22.09.2014, 16:58. Показов 1231. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Недавно возобновив программирование я обнаружил забавное явление, при запуске исполняемого файла консольное приложение открывается дважды. По завершению программы без всяких на то причин появляется идентичное окно программы которая исполняет себя заново.
В диспетчере задач отчетливо наблюдаются два одноимённых процесса, один из них занимает ровно 100 кБ памяти. Тестил на других машинах, идентично.

Пример программы и параметры компиляции.
g++ -o hello hello.cpp -static
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <windows.h>
using namespace std;
 
int main()
{
   cout<<"Hello world!\n";
   system("pause");
   return 0;
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.09.2014, 16:58
Ответы с готовыми решениями:

Двойное окно выбора ОС
Всем привет! На днях установил windows xp рядом с 7...со 2 раза все ок, но проблема в том, что при выборе ОС будь то 7 или XP выбор...

Разработать три процесса: процесс-сервер и два процесса-клиента
Требуется разработать три процесса, запускаемые из командной строки UNIX: процесс-сервер, запускаемый в оперативном режиме, и два...

Отобразить активное окно процесса
Как зная процесс вывести на передний план его окно? ShowWindow(pr.MainWindowHandle, 9); //работает только если окно одно и оно свёрнуто

9
 Аватар для Lynatik001
48 / 40 / 15
Регистрация: 28.09.2012
Сообщений: 818
22.09.2014, 18:47
g++ -o hello hello.cpp -static
че ет убери его) и в какой среде пишешь?
0
0 / 0 / 0
Регистрация: 22.09.2014
Сообщений: 5
22.09.2014, 19:28  [ТС]
Цитата Сообщение от Lynatik001 Посмотреть сообщение
g++ -o hello hello.cpp -static
че ет убери его) и в какой среде пишешь?
Средой на данный момент не пользуюсь т.к. пока не востребована, но, тестил в codeblocks, тот же результат.
То что перед кодом, это команда на компиляцию (компилятор - g++) + параметр компиляции (-static) т.к. я вызываю оную из консоли. На всякий случай я написал всю строку.
0
 Аватар для Lynatik001
48 / 40 / 15
Регистрация: 28.09.2012
Сообщений: 818
22.09.2014, 19:45
Цитата Сообщение от SweetYogurt Посмотреть сообщение
Средой на данный момент не пользуюсь т.к. пока не востребована, но, тестил в codeblocks, тот же результат.
То что перед кодом, это команда на компиляцию (компилятор - g++) + параметр компиляции (-static) т.к. я вызываю оную из консоли. На всякий случай я написал всю строку.
ну наверно в нем и дело, ибо я не вижу чего то сверхестественого в коде. Ну а с этим компилятором я не знаком)), по этому не могу сказать что неверного в g++ -o hello hello.cpp -static

Добавлено через 1 минуту
-o попробуй убрарть я вот на угад подумал что это (опен) а если оно и по умолчанию еще после компиляции его запускает то выйдет 2 окна
0
 Аватар для VladislavTepes
80 / 80 / 14
Регистрация: 27.06.2012
Сообщений: 555
Записей в блоге: 1
22.09.2014, 19:56
Лучший ответ Сообщение было отмечено SweetYogurt как решение

Решение

Не по теме:

Lynatik001, вы бы, блин, хоть думали, что несёте.


А попробуйте так:
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
using namespace std;
 
int main()
{
   cout<<"Hello world!\n";
   cin.get();
   return 0;
}
1
0 / 0 / 0
Регистрация: 22.09.2014
Сообщений: 5
22.09.2014, 20:05  [ТС]
"-o" нужно для изменения имени исполняемого файла без него будет просто "a.exe".
Тут ясно где косяк, явно в компиляции но вот сам я его выудить не могу. У вас видимо g++ экспертов явно не в избытке тут )))
Если решение не найдём, то остается только компилятор сменить.

Добавлено через 3 минуты
Цитата Сообщение от VladislavTepes Посмотреть сообщение

Не по теме:

Lynatik001, вы бы, блин, хоть думали, что несёте.


А попробуйте так:
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
using namespace std;
 
int main()
{
   cout<<"Hello world!\n";
   cin.get();
   return 0;
}
Хммм... Мне казалось я уже так пробовал... мда.
Как всегда решение находится неожиданно и в неожиданном месте.
Спасибо.
0
 Аватар для VladislavTepes
80 / 80 / 14
Регистрация: 27.06.2012
Сообщений: 555
Записей в блоге: 1
22.09.2014, 20:06
SweetYogurt, с моим вариантом как? И да, от компилятора это не зависит - тут, скорее, это system() виновато. По-моему, на Win она порождает какой-то дополнительный процесс pause.exe.
It's frowned upon because it's a platform-specific hack that has nothing to do with actually learning programming, but instead to get around a feature of the IDE/OS - the console window launched from Visual Studio closes when the program has finished execution, and so the new user doesn't get to see the output of his new program.

Bodging in System("pause") runs the Windows command-line "pause" program and waits for that to terminate before it continues execution of the program - the console window stays open so you can read the output.

A better idea would be to put a breakpoint at the end and debug it, but that again has problems.
Первый ответ отсюда: http://stackoverflow.com/quest... s-it-wrong
0
0 / 0 / 0
Регистрация: 22.09.2014
Сообщений: 5
22.09.2014, 20:10  [ТС]
На самом деле, я ради интереса поэкспериментировал и выяснил, что сейчас и с system("pause"); работает корректно. Остаётся только вопрос почему на других машинах тоже глючило.
Воистину магия...
pause.exe не наблюдаю
0
 Аватар для VladislavTepes
80 / 80 / 14
Регистрация: 27.06.2012
Сообщений: 555
Записей в блоге: 1
22.09.2014, 20:18
SweetYogurt, странно. Меня просто на Win нет давненько, и я не помню всех выкрутасов.
0
22.09.2014, 20:27  [ТС]

Не по теме:

Честно говоря сижу на винде только потому-что горячие половые ночи
с линуксом отталкивают меня еще больше чем её приколы

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.09.2014, 20:27
Помогаю со студенческими работами здесь

Как закрыть окно чужого процесса?
Добрый день. Объясните пожалуйста, почему по OutWnd-&gt;PostMessage( WM_CLOSE, 0, 0 );не хочет закрываться окно? Ситуация...

Нужно сделать неактивным окно процесса
Есть программа A, которая при включении сразу скрывается в трей и вызывает программу B. В свою очередь программа B при нажатии на кнопку...

Наблюдаются фризы
Заметил наблюдаются фризы решил поменять железо. И решил поставить E5 2620 V2 Но мне кажется что проблема в HDD На сколько это плохие...

Скрыть консольное окно при запуске процесса
Добрый день! Вопрос вот такой весьма срочный возник. Есть код старта процесса консольного приложения: Dim ffMpegProcess As New...

Найти окно, если известен ID и хэндл процесса
Можно ли найти окно, принадлежащее определённому процессу (хэндл и ID процесса известны)?


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru