-
>было бы чтоб работало и на 32 тоже Писать под win32 сей проект неудобно. Там ограничение 4 гб. Делать смешанную адресацию неудобно и получаются медленные процедуры. 32 уже потихоньку уходит в прошлое, хотя и не так быстро как 16 бит.
-
И вы реально можете занять все 4ГБ? У меня вот ни одна программа, даже мощные CAD-системы и крутые игры - не достигают 4ГБ. %))
-
>Непонятно тока что за "трансляция". Windows не дает без окна доступ к очереди сообщений, поэтому приходится делать привязку к оконной процедуре. Типа врезки трубы в магистраль. Хотя можно изобрести что-то вроде своего контроллера. Если мышь в области, то запускать таймер и делать выборку позиции через winapi.GetCursorPos и клавиши через GetAsyncKeyState. Тогда вообще трансляция не нужна.
А под 32 не переделаю. Смысла нет, да и наоборот я ее переделывал с 32 на 64.
-
>И вы реально можете занять все 4ГБ? У меня Photoshop64, 3ds max64, Illustrator64 и т.д все используют намного больше 4 гб. У меня 32 стоит. Фотошо например 20 Гб легко съедает.
-
Не пользую фотошопы - рисовать не умею. Для элементарных обработок вполне хватает XnView/Gimp. Что ж вы с ними делаете такое?)) У меня модель летательного аппарата со всеми мельчайшими деталями и сложной кинематикой стока не жрёт)) Хотя не тестил скока будет жрать если поставить x64 ОС и такую же версию CAD-системы... Может с этой же моделью сразу же в три раза больше памяти хапнет просто так?
ох... Короче так. * Делаем класс DMKApplication, который: хранит список "окон" верхнего уровня программы, умеет запускать очередь сообщений, при закрытии всех окон выходит из программы (закрывает). * Делаем класс DMKWindow, который: является обёрткой над окнами верхнего уровня Windows, умеет создавать и уничтожать окна, получает управление от мыши и клавиатуры, отслеживает изменение своего состояния (позиция, размеры, итп), хранит и обрабатывает список "слоёв", выводит на себя итоговую буфер-картинку. * Делаем класс DMKLayer, который: является логической единицей выводящей что-либо на битмап, имеет классические методы и события. Возможно абстрактный, с какими-то потомками типа "кнопка", "текст", "чекбокс", etc. В простейшем случае имеем: один объект DMKApplication, один объект DMKWindow, некоторое количество объектов DMKLayer. Итого в программой будет создано один HWND и при перерисовке будет браться один HDC за раз и тут же освобождаться. Минимальная привязка к ОС, минимальное потребление системных как их там, максимальная скорость работы, переносимость программы на любую платформу через просто замену реализации нескольких методов DMKApplication и DMKWindow, и всё своё.
-
D7 (03.04.17 11:09) [61]
> И вы реально можете занять все 4ГБ? У меня вот ни одна программа, > даже мощные CAD-системы и крутые игры - не достигают 4ГБ. > %))
Это говорит о том, что с программами, занимающими больше 4-х Гб ты не знаком. Ну и что ? Займись фотографией, сразу познакомишься :)
dmk © (03.04.17 11:05) [60]
> 32 уже потихоньку уходит в прошлое
Бред какой. Программ, которым реально нужен большой объем памяти, максимум 1 процент от всего.
-
>будет браться один HDC за раз и тут же освобождаться. DC - контекст - это просто битмап. Его не надо постоянно освобождать. Взял DC и пользуй его. Надоело - ReleaseDC. Это просто ссылка. Это нужно было в windows 3.11-95, а после win2000 уже не нужно. На самом деле все уже работает. Если запустите примеры, то увидите. Только win64 надо.
-
Хех, "занимающими" или "жрущими"?)) Вся папка CAD-программы занимает на диске около 23ГБ. Фотографией? У вас есть фотка весящая 4ГБ в распакованном виде?)
MSDN указывает делать BeginPaint/EndPaint. Я слушаюсь MSDN, во избежание, как говорится, это их система. HDC это не битмап, в него может быть выбран битмап, а может и не быть выбран. Как и остальные HGDI объекты.
ну... Я предлагал помочь. Как хотите. Но покачто у вас что-то делается не совсем так. В плане WinAPI.
-
D7 (03.04.17 12:37) [67]
> У вас есть фотка весящая 4ГБ в распакованном виде
Конечно. И не одна. Кроме фоток еще есть базы данных. И не одна. Но это уже оффтопик. Я просто прошу поверить, что нужных 64-х разрядных программ достаточно.
-
>не совсем так. В плане WinAPI. У меня все в памяти делается, а не в винапи. Мне от WInApi только несколько сообщений надо.
А за помощь спасибо! Все будет учтено.
-
>У вас есть фотка весящая 4ГБ в распакованном виде?) Вы просто не сталкивались видимо с такими задачами: БД, Видео, Фото, Полиграфия, Архивы и т.п. У меня архивы несколько сот гигабайт в упакованном виде. Работаю дизайнером. Есть файлы более 4-х Гб. Немного, но есть.
-
> dmk ©
прочитал ветку, так и не понял - зачем? без окна в современной винде все равно отображать ничего не выйдет, для отображения в Windows нужно окно (Window), для него и нужно написать платформенно-зависимую прослойку, которая будет отображать и принимать ввод. к чему велосипеды - не понятно.
-
>без окна в современной винде все равно отображать ничего не выйдет Там в [57] уже все вышло :) Конечно же все отображается в окне.
-
> dmk © (03.04.17 23:41) [72]
все равно не понятно, зачем требовалось, что требовалось и что в итоге получилось. по-моему усложнение себе жизни.
|