Перейти к содержанию

youneuoy

Пользователи+
  • Постов

    128
  • Зарегистрирован

  • Посещение

  • Победитель дней

    4

youneuoy стал победителем дня 27 сентября 2021

youneuoy имел наиболее популярный контент!

Репутация

16 Novice

1 Подписчик

Информация о youneuoy

Посетители профиля

5 042 просмотра профиля
  1. а изменяется она в зависимости от разницы между временем, когда изменение должно завершиться и временем его начала. не sleep(1), но происходить это должно в цикле, да. можно обойтись. Обсуждали ведь на прошлой странице. ах, ок. А я имел в виду накладные расходы на существование потока. я тебе их и предложил. Ты выше не писал о том, что разные способы изучаешь - ты в один единственный упёрся. угу, получается ты читал книги не про то, что тебе нужно😃Ну или же тебе стоит взять те методы и применить их к новым инструментам. А желания у тебя странные. Мне казалось, что ты хочешь либу для интерфейса написать. А это проще делать на плюсах. WinAPI хороши для управления виндой, но тебе это нужно по минимуму. C++ и C и WinAPI это не низкоуровневые штуки В c# ты можешь работать с winapi. И с указателями и т.п., там это всё тоже есть. И c# с плюсами ничего за тебя не решают - ты просто сам пишешь ровно тоже самое, что уже реализовано в их стандартных библиотеках(ну или же в библиотеках сторонних авторов). И я вообще не понимаю как можно любить язык программирования. Также как и компьютер и молоток - это инструменты просто) и тем не менее ты всё там же, где был неделю назад. я не уверен в этом. Большая часть подобной информации может пригодиться слишком уж редко. а вместо организации используешь виндовую очередь сообщений, виндовые специализированные функции и т.п. - это не ты организовываешь, не проектируешь даже, а просто подгоняешь всё под эти самые функции. грибной сезон в разгаре. Айда в лес и потом в дискорд хвалиться😜
  2. он и при слипе не тратит. Ты видел, на что ответ цитировал? основной поток - не объект, а принципы ООП не обязательны к выполнению. умеет. Видел в диспетчере задач "System Idle Process"? Вот там будет твой маленький вклад и выгоды из этого, что для программы, что для системы будет ровно 0. потому, что ты как минимум с понедельника этим загоняешься😀А мог бы сделать нужную штуку и забыть уже. но не используешь плюсовые штуки или их продвинутые альтернативы(их в различных библиотеках сделали очень много). тем, что задаче не соответствует и дополнительной доработки потребует. А задачу ты и не поставил конкретную, кстати. В плюсах есть над подобными штуками обёртки для всего, что тебе нужно - thread, atomic, cancellation_token, condition_variable, mutex, scoped_lock, не перечесть всего. Это всё удобнее, чем стандартные виндовые функции, при использовании этого тебе не придётся самостоятельно дописывать логику работы с тем же WaitForSingleObject для конкретной ситуации(а дописываешь ты её в каждом конкретном случае отдельно, не делая никаких обёрток, затрачивая время и усложняя код - 100% есть принцип ооп, "запрещающий" это). В том числе этими вещами можно заменить использование системы сообщений винды внутри приложения. Пара десятков строк кода и получишь штуку вида: так ты не будешь ограничен набором определённых сообщений, заимеешь возможность пересылать конкретные объекты или ссылки на них, когда нужно игнорить - сможешь игнорить/перезаписывать и проч. и проч. Ну и это всё точно также просто можно переделать без использования сна, а с ожиданием всяких там condition_variable и т.п. переспрашивать глупо, а спрашивать это ок. Глупый вопрос это тот, который не задан) Ты не переспрашиваешь, а уточняешь. место простое, задачу можно поставить простую и просто же её разрешить. А ты сам себе палки в колёса пихаешь.
  3. если очень хочешь, используй WaitForSingleObject, CreateWaitableTimer или любую другую вещь в качестве замены для sleep🙂И задержка для sleep как-то вроде настраивается(но не всеми системами поддерживается, и вообще это бесполезная для написания подобных библиотек инфа). Но смысла в этом мало - код усложняешь, голову себе ерундой забиваешь, а выигрыш в скорости самый минимальный(ты его более чем компенсируешь косяками, возникшими вследствие этой неуместной оптимизации). Ты планировщик можешь хоть в основной поток, хоть в дополнительный воткнуть. Следует абстрагироваться от таких загонов, как абстрагирование, WaitForSingleObject и т.п. И не забывай, что ты всё-таки на плюсах пишешь. спинлок это не sleep. Ты чего-то всё время в кучу сваливаешь огромное количество вещей и топчешься в самых простых местах😀 Приколись лучше мыслью о том, сколько у тебя на это ресурсов ушло и чего по сравнению с этим стоит сохранение ресурсов машины(которая к тому же будет простаивать, а не выполнять другую работу).
  4. в отсутствии сообщений процессорное время у тебя отдельный поток будет потреблять(и кажется он будет не один)🙂Делай пару десятков обновлений в секунду, это будет потреблять самый мизер и в этом же цикле ты сможешь устанавливать нужные тебе тайминги и т.п.(как хипхо написал, это удобно когда приложуха лёгкая, а у тебя именно такая).
  5. а почему бы не воткнуть туда PeekMessage?🙂Ну и std thread довольно удобная штука, а в отличие от виндовых функций ещё и кроссплатформенная. Зря не пользуешься. почему? не хочешь поток - используй PeekMessage
  6. перерисовать окно никак не получится? 100% есть такая возможность. А если её нет, то можно окно удалить и создать новое, с нужным цветом кнопки. А вообще pitronic уже опытный геймхакер🙂 Пора начинать кодить по-человечески, без CE.
  7. вот только по адресу все равно может мусор оказаться. ага, мусор будет или ошибка чтения. Как в cheat engine когда структуру смотришь - оно указателями всё подряд считает и даже развернуть их можно.
  8. 😱 0xc0000005 или мусор какой-нить, очевидно. Если я правильно тебя понял. это разыменует указатель и проверит значение на 0. никак🙂 дебажить пробовал?🙂
  9. Это не мой код🙂Я его взял у какого-то пользователя с форума когда программированию учился только и по этому шаблону наделал патчей в память. Код с утечками, недоработками и т.п., но это неважно в данном проекте(я только самые критичные проблемы поправил, чтобы оно просто всегда работало). В другом проекте я иначе это сделал, но в имеющийся перетаскивать не стал, нет желания несколько тысяч строк кода переделывать.
  10. ага, так как скобки хипхо расставил если только условие теперь определяет именно то, что ты изначально задумал. Оно сложное.
  11. 99 вызовов мало нагрузят систему. К тому же кнопки находятся в окнах/других элементах. Если неактивно окно, то вызовы для кнопок выполняться не должны ведь и т.п. мы не знаем как сделано, ты ведь пару кусков+пару размытых описаний запостил и всё.
  12. в c++ поддерживается множественное наследование и т.п. Мне кажется это тот случай, где его можно было бы применить. А можно было бы и не применить. Вариантов масса, просто сделай как-нибудь для начала. метод update слишком размыт, а GUI, от которого наследуются виджеты - нет?😃
  13. это не так. У тебя ведь условие || есть. Для второй части выражения isAnchorEnabled теперь не существует. ты игры не реверсил никогда? Просто серия проверок с джампами. хипхо написал как они работают и скобки расставил даже. Хотя я бы напихал скобочек даже к операторам отрицания и по возможности разбил бы условие на несколько простых подряд идущих, например.
  14. В любом случае, подобный однотипный код при небольшом рефакторинге можно будет плюсовыми объектами объединить, запихать в контейнер, обновлять уже совсем по-хитрому и т.п. А там и без собственного желания в паттерн какой-то гарантированно вляпаешься🙂 И этого никак не получится сделать, если не писать вообще ничего или если зависнуть на месяц, втыкая в несколько строк кода. Теория без практики мертва, практика без теории слепа. Занимайся и тем и другим и побольше.
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.