SyavaSyava: Я тоже был в этом уверен. Пока у меня не выскочило сообщение о нехватке оперативной памяти. На тот момент у меня было всего 16 гигабайт... Так же файловый кэш высвобождается на удивление неохотно и медленно. Я тоже был убеждённым приверженцем того, что насильно освобождать оперативку - глупость. Но уже неоднократно сталкивался с дикими тормозами из-за неспешного освобождения кэшированных файлов. Не говоря о том, что в кэш пихается вообще всё подряд, включая то, чего я уже годами не запускал (о некоторых файлах я даже не подозревал, что они до сих пор лежат. кэшировать папку с архивами и бэкапами - верх невменяемости системы кэширования).
Вот про хук. Скорее всего вы это уже прочитали, но я не вижу там проблем. Регистрируете callback функцию, которая делает нужные вам вещи при нажатии нужных вам клавиш. https://msdn.microsoft.com/ru-ru/library/windows/d...
sleep однозначно хуже таймера, т.к. потенциально может быть заблокирован гораздо дольше, чем вы задали в аргументе. А таймер срабатывает более-менее точно.
Vitaliy Orlov: Вы уже умеете определять язык любого и конкретно вашего приложения. Теперь запускайте таймер и каждые 0.75 секунды проверяйте язык. У меня сейчас так работает подсветка языка лампочкой SCROLL_LOCK'a, задержка лампочки при смене языка почти не ощущается.
Как я понял, вам то нужно при смене языка всплывать индикатор, чтобы в нём выбрать язык из списка, так что нужно сохранять прошлое состояние и всплывать индикатор только при изменении состояния.
Но с хуком решение более правильное и эффективное, но чуть сложнее реализовывается, как мне кажется.
Gagatyn: Есть, в ней же... Очень рекомендую погуглить про дебаг. Сильно облегчит жизнь в дальнейшем. При трассировке в дебаге сразу бы было видно ошибку в логике программы.
И ошибку не выдаёт, просто логика не правильно реализована, но программной ошибки нет. В следующий раз корректнее формулируй проблему.)
nost: Нельзя, он только exe/dll сжимает. Смотрите в сторону портабл. Может что-то открытое и есть. Но обычно WMWare используют, а он не открытый, кажется.
nost: Т.е. прихоть.)
В случае EVB у них реализована часть подсистемы VirtualBox, но без полноценной виртуальной машины, а "всего-лишь" подменяются некоторые системные функции для работы с реестром и файловой системой. Упакованные файлы либо извлекаются в TEMP и вызовы перенаправляются на них (кажется, именно так EVB и реализован), либо распаковывают данные в память и на них перенаправляют, как делают всякие upx и прочие exe-пакеры.
Т.е. никакой магии, тот же самораспаковывающийся архив, только с хитроумной прослойкой. Не удивлюсь, если какой-нибудь параноидальный антивирус примет их за вирусы, ставящие хуки на системные функции...
Вспомнил. Попробуй погуглить программы для создания портабл версий программ. Может опенсорсное и будет что-нибудь.
Anton Nadtoka: ETC1 не сжимает с альфа-каналом. Если альфа-канала нет, то уже сейчас можно загружать в RGB888 или RGB565 и занимать 12 или 8 мегабайт.
Ещё на хабре есть статья (моя), как сделать палитризованные текстуры с прозрачностью. 2048*2048 будет занимать 4 мегабайта.
Anton Nadtoka: Один раз 16 мегабайт не так уж и много даже для мобилок.
Если стиль графики позволяет, то может есть смысл разбить на несколько атласов с меньшим количеством цветов и/или без альфа-канала. Если загружать текстуру в формате RGB4444, то будет 8 мегабайт занимать, но качество картинки ооочень сильно пострадает, если специально не подготовишь текстуру.
Anton Nadtoka: Вы имеете в виду четыре текстуры. Даже если загружать по кусочкам, то в видеопамять всё-равно придётся передавать всю собранную текстуру целиком. Т.е. вам надо 4 отдельных текстуры.
А ещё попробовать использовать какие-нибудь из форматов сжатия.
В итоге я так же поступил, сделал терабайтный раздел для хранения и терабайтный для изменяемых файлов. И все рабочие проекты перенёс на большой SSD, чтобы вообще забыть про фрагментацию.
Даниил Демидко: Я про то, что между записью
{ string a; f(a); }
и
f( string() );
нет никакой разницы. И такой код связан только с ошибкой проектирования интерфейса (с отсутствием константной ссылки и требованием передавать ненужный аргумент).
Даниил Демидко: Ну так проблемы скорее у GCC, что не может обеспечить время жизни аргумента. Но такая запись имеет смысл только для константных ссылок, потому что передавать модифицируемый объект, который будет уничтожен сразу после возвращения из функции - выстрел себе в ногу.
A B C D E F - гиперссылки на страницы. На каждой странице перечислены артикулы AFFF,ARRR,ATTT... BEEE,BYYYY,BUUU и т.д.
С точки зрения индексации, может лучше и не будет, но точно не будет хуже. Более того, лендинг можно будет нормально открывать в браузере, не дожидаясь загрузки многомегабайтного текстового файла и отображения этих миллионов артикулов. Главное, чтобы на эти страницы можно было попасть с главной страницы напрямую или через промежуточные страницы, т.е. чтобы робот мог до них добраться.
leaningless: можно написать батник или powershell скрипт, чтобы они пытались узнать разрешение фильма и переименовывали файл в случае неудачи (удалять сразу лучше не надо).
Askar A: zlib или любую другую библиотеку можно взять. Просто zip куча библиотек поддерживает. Вряд ли там какой-то 7z для сжатия, потому что им лицензию на него никто бы не дал.