Программист
|
||||||
1 | ||||||
Проблема при вызове функции03.11.2011, 21:36. Показов 2573. Ответов 31
Метки нет (Все метки)
Написал для себя простенькую напоминалку, выводящую указанное сообщение через определённый промежуток времени(ну там, "отойди от компа, глаза разомни"))) и тп). И всё бы работает нормально, но вот как только происходит вызов функции change(), для изменения начальных параметров, происходит что-то странное - ничего не считывается с клавиатуры и консоль будто подвисает...
В общем прошу совета, что нужно исправить чтобы избежать данного бага?
0
|
03.11.2011, 21:36 | |
Ответы с готовыми решениями:
31
Класс - Ошибки при вызове методов: В вызове функции отсутствует список аргументов Ошибка при вызове функции Странности при вызове функции Ошибка при вызове функции |
Программист
|
|
05.11.2011, 19:39 [ТС] | 22 |
Чтобы консоль не нигде не висела, по идеи прога должна только в процессах отображаться.=\
До напоминания разумеется, когда напоминание выполнено появляется меню для вода дальнейших указаний.
0
|
Заблокирован
|
|
05.11.2011, 20:40 | 23 |
Whiteha, не обижайтесь но чтобы скрить окно есть намного более привычные способы ShowWindow(hWnd,SW_HIDE);//скрыть
ShowWindow(hWnd,SW_SHOW);//показать Своими AllocConsole() или FreeConsole() вы только консоли плодите Не по теме: Ложа руку на сердце скажу что алгортм у вас неоправданно раздутый, дайте задание что хотите реализвать, вы хоть и сказали за вас не писать но ваш код править устаёшь - говорю недочёт - в логике - что ж это программа 6 dowhile и прочих излишеств...
0
|
Заблокирован
|
|||||||||||
05.11.2011, 20:48 | 24 | ||||||||||
Я подправил ваш код под мигание только меседж бокса и засвета консоли именно когда нужен вводНе поленитесь оттестируйте - будете приятно удивлены этим
1
|
Программист
|
|
05.11.2011, 21:24 [ТС] | 25 |
Спасибо, ShowWindow(), действительно решил проблему.=)
Ответы которые я получил: 1) Из-за чего же _getch() игнорится? - Каким-то макаром на правильность работы влияют функции AllocConsole() и FreeConsole()(чем именно - хз), при этом не помогают ни wcin.sync(), ни wcin.ignore(), ни wcin.sync_with_stdio(); 2) Как это предотвратить? - Не использовать AllocConsole() и FreeConsole(), использовать ShowWindow(). 3) Как это лечить, если не получается избежать? - Хз. Если кто ответит - буду благодарен.
0
|
|
05.11.2011, 21:54
#26
|
0
|
Whiteha
|
05.11.2011, 22:03
[ТС]
#27
|
Не по теме: -=ЮрА=-, я это понял ещё с первого вашего сообщения)
0
|
Заблокирован
|
||||||
05.11.2011, 22:04 | 28 | |||||
Whiteha, т.к. ві мне не верите скорее всего, вот Вам простецкий пример
0
|
Программист
|
|
05.11.2011, 22:26 [ТС] | 29 |
Я вам верю, и здесь всё понятно и работает правильно(не без ignore() разумеется), может я где и ошибся, но у меня было так https://www.cyberforum.ru/post2139656.html ...
0
|
Заблокирован
|
|
05.11.2011, 22:49 | 30 |
- проблемма была в функции int change(), а не в АllocConsole() и FreeConsole()!В свиче (ниже его вам привожу цитатой), мы щёлкали ввод и без wcin.ignore в буфер подсаживался '\n' который далее всё и портил - ну на поверхности же всё лежит...
Не по теме: С первого поста Вам об этом говорю, прогоните чтоли через пошаговое выполнение программу и сами посмотрите буффер после ввода...
0
|
Заблокирован
|
|
05.11.2011, 23:17 | 32 |
- ну тогда хорошо
Не по теме: В основном что то неучтённое начнает выялять себя как раз в длинных(имею виду многострочных) алгоритмах, теперь вы увидели как какой то маханький косяк может свести на нет всю программу...
0
|
05.11.2011, 23:17 | |
05.11.2011, 23:17 | |
Помогаю со студенческими работами здесь
32
Ошибка при вызове функции Ошибка при вызове деструктора (при вызове delete в деструкторе) При вызове функции программа не выполняется Identifier not found при вызове функции GCC ошибка при вызове функции Создание переменной при вызове функции Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |