Оцените тетрис12.08.2014, 21:00. Показов 9097. Ответов 63
Метки нет (Все метки)
Написано коряво, но это первый блин. Мне бы очень хотелось его дошлифовать до красивого внешнего и внутреннего содержания. Если участники форума мне в этом помогут, буду признателен.
Кликните здесь для просмотра всего текста
3
|
||||||
| 12.08.2014, 21:00 | |
|
Ответы с готовыми решениями:
63
Тетрис на C++ Тетрис |
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
||
| 14.08.2014, 02:26 | ||
Сообщение было отмечено _Ivana как решение
Решениечтобы в этом убедится открой диспетчер задач вкладка процессы и в меню вид выбрать столбцы - объекты GDI и понаблюдай за значениями
1
|
||
| 14.08.2014, 02:38 [ТС] | |
|
Растут как на дрожжах!.... Спасибо. Теперь буду думать в чем причина.
Добавлено через 6 минут И ровно на 10000 объектах GDI она у меня и виснет! Очень вам спасибо!!Уже три ночи, соображаю не так хорошо, завтра поищу протечку!...
0
|
|
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
||||||||||||
| 14.08.2014, 02:47 | ||||||||||||
|
ресурсы то не бесконечные смотри на парность
0
|
||||||||||||
| 14.08.2014, 02:51 [ТС] | |
|
Спасибо, я хоть пока не нашел место утечки, но мне стало очень хорошо от того, что выяснилась причина!
А попутно узнал про отладчик и показ GDI в диспетчере задач, на будущее обязательно буду смотреть свои программы там!
0
|
|
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
||||||
| 14.08.2014, 11:40 | ||||||
|
DrOffset,
Все бы хорошо, но к GDI ресурсам это не относится С точки зрения языка
утечки нет, но винда создает в контексте, то ли копию то ли еще что, тайна великая сие есть и утечка ресурсов кстати если включить Диспетчер задач и понаблюдать, при утечке GDI ресурсов не всегда происходит утечка памяти, она где то в ядре утекает
0
|
||||||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||||
| 14.08.2014, 12:00 | ||||
Если там и есть какие-то особенности, то они наверняка описаны в документации и, если их учесть при программировании, то RAII никак не повредит делу.
0
|
||||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
||||||
| 14.08.2014, 12:38 | ||||||
![]() но ты много понимаешь что происходит ядре при рисовании простого окна? Я нет мне хватает верхнего уровня может Убежденный знает? и даже подчеркнуты ![]() чтобы объект удалился нужно его осободить, а чтобы освободить достаточно выбрать предыдущий объект, ну это так на пальцах ![]() что RAII это общая конструкция, так сказать абстракция, а для конкретного применения её нужно "посадить на конкретную платформу" Добавлено через 1 минуту
0
|
||||||
|
710 / 284 / 16
Регистрация: 31.03.2013
Сообщений: 1,340
|
||||||||
| 14.08.2014, 12:55 | ||||||||
![]()
Добавлено через 1 минуту Но вообще я бы посоветовал бросать это дело если на то нет каких-то особо веских причин. Ну, это я про программирование интерфейсов на winapi. Есть же Qt и Sciter. Зачем с winapi сейчас возиться - я хз честно говоря.
0
|
||||||||
|
|
|
| 14.08.2014, 12:56 | |
|
Warezovvv, и что такого плохого в Си? Открою секрет, До появления плюсов, всё равно существовали программы "больше 700 строк".
0
|
|
|
710 / 284 / 16
Регистрация: 31.03.2013
Сообщений: 1,340
|
|
| 14.08.2014, 13:06 | |
|
Еще кстати хорошая тема, чтобы не мучиться с selectobject можно просто копировать контекст устройства а потом восстанавливать копию
Добавлено через 9 минут
0
|
|
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|||
| 14.08.2014, 13:27 | |||
![]()
0
|
|||
|
710 / 284 / 16
Регистрация: 31.03.2013
Сообщений: 1,340
|
|
| 14.08.2014, 13:37 | |
|
Там в WndProc brush каждый раз создается и не удаляется
0
|
|
| 14.08.2014, 13:56 [ТС] | |
|
Спасибо, сейчас на работе, вечером дома перепишу код и посмотрю на утечку GDI.
Также спасибо за подсказки утилит и методов контроля работы приложений, буду осваивать! Что касается момента - почему ВинАпи а не крутая модна современная графическая библиотека - мне нужно было с чего-то начать, плюс по ВинАпи в инете много примеров. Я доведу этот тетрис на ВинАпи до красивой работающей программы, а потом посмотрю на другие библиотеки, может и на них его же перепишу. Про 700 строк - там более половины из них это создание и отрисовка окон и меню, сама суть кода тетриса очень лаконична. Если покажете лаконичный код, выполняющий исключительно оконную интерфейсную обработку, с интересом посмотрю на него. Не по теме: А что касается холивара С vs C++, я конечно скромно промолчу на правах нуба и лола :), но про себя подумаю, что не красит специалистов пренебрежительное отношение к другим инструментам. А также подумаю, что они не в курсе программирования микроконтроллеров.
0
|
|
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
|||
| 14.08.2014, 13:58 | |||
|
а если неправильно? я тебе показал клише с точки зрения языка все правильно, с точки зрения винды утечка Я к чему поднял этот разговор? Я дополняю что кроме языка, нужно знать и среду исполнения Надеюсь в этом мы не расходимся
0
|
|||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||||
| 14.08.2014, 14:49 | ||||
|
Все-таки мне кажется мы о разном говорим. Почему нельзя выделить через CreateObject, а DeleteObject оставить в деструкторе? Вот и будет RAII. Вот справка по SelectObject. Скажи, где там описано приведенное тобой поведение? Раз уж мы завели речь о конкретном примере, то давай конкретно его разбирать. Средства языка всегда будут подстраиваться под средства среды, у них не может быть никакого противоборства.
0
|
||||
|
710 / 284 / 16
Регистрация: 31.03.2013
Сообщений: 1,340
|
||
| 14.08.2014, 14:56 | ||
|
0
|
||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
||||||
| 14.08.2014, 14:57 | ||||||
|
поскольку ресурс захвачен, DeleteObject ничего не сделает, нужно его освободить вот посмотри тему я поднимал года три назад Цвет фона
0
|
||||||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
||||||
| 14.08.2014, 15:05 | ||||||
|
Если система выделяет ресурс и отдает нам владение, то мы можем за ним следить, в том числе и через RAII. Если система выделяет ресурс и не отдает нам владение, то мы следить за ним не сможем. Если система выделяет ресурс и не отдает владение, но и сама его не освобождает, то это ошибка в системе. Добавлено через 4 минуты
0
|
||||||
|
|
|
| 14.08.2014, 15:15 | |
|
0
|
|
| 14.08.2014, 15:15 | |
|
Тетрис на c++ Тетрис Тетрис Тетрис на С++ Консольный Тетрис на С++ Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки
Правым кликом по серверу -> отладочная информация -> edit
Заменить "net": "raw", на "net": "tcp",
Нажать кнопку reload.
|
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|