-
Постов
128 -
Зарегистрирован
-
Посещение
-
Победитель дней
4
youneuoy стал победителем дня 27 сентября 2021
youneuoy имел наиболее популярный контент!
Репутация
16 NoviceИнформация о youneuoy

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