Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 [2]  Все   Вниз
  Печать  
Автор Тема: Win32 приложения  (Прочитано 48588 раз)
0 Пользователей и 7 Гостей смотрят эту тему.
zubr
Гость
« Ответ #30 : 04-09-2011 05:12 » 

чего бы взять для примера...
DrWeb, QIP, uTorrent, UltraISO, Notepad++
это наверное все вирусы)
или я где то ошибся?
А конкретнее, откуда инфа?
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #31 : 04-09-2011 06:32 » new

тогда я не понял А черт его знает...
нууу, тогда я тоже Отлично
Записан

Ochkarik
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #32 : 04-09-2011 15:43 » 

чего бы взять для примера...
DrWeb, QIP, uTorrent, UltraISO, Notepad++
это наверное все вирусы)
или я где то ошибся?
А конкретнее, откуда инфа?
честно говоря от балды привел... исключительно чтоб ваши слова не столь одиозно звучали.

ну например  Notepad-wiki
Цитата
Notepad++ — свободный текстовый редактор для Windows с подсветкой синтаксиса большого количества языков программирования и разметки. Он базируется на компоненте Scintilla
Цитата
Scintilla — компонент редактирования с открытым исходным кодом для Microsoft Windows, и Linux с GTK+...
На Linux использует библиотеку GTK+, на Windows — Windows API.

uTorrent - разработка началась в 2005году, однако
"Versions of µTorrent up to 1.8.5 build 17091[21] can use as little as 14 MB of RAM running on a 486 processor on Windows 95."
однако для MacOS - только с 2010, для Linux с 2010го. соответственно - только подозрения что ничего кросплатформенного не использовалось... и работа началась с винды. и размер, сейчас не помню, но что то около двух сотен кб.
MFC библиотеки вроде не линкуются. да и разработчик тоже...хакер еще тот)

UltraISO  занимает порядка 1мбайта.
"Windows 7/2008/Vista/2003/XP (32bit and 64bit), Windows 2000, ME, 98SE, 98, or Windows NT4.0 SP6a+ operating system ."
Intel Pentium 166MHz or above.
интересно, кто граф-библиотек до сих пор поддерживает "Windows NT4.0 SP6a+"?)))
хотя тут тоже пальцем в небо. если честно)

про DrWeb, на недельке уточню, самому интересно)

в общем то не суть важно. поискать - найти можно.
просто не стоит так однозначно... я не говорю что микрософт оффис надо переписать на чистом API)  но для эстетики... почему  бы и нет?))
в конце концов, кто то тоже должен писать эти граф оболочки?
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #33 : 04-09-2011 16:06 » 

Ochkarik, Если используется WinAPI, то не о какой кроссплатформенности речи не идет. .NET изначально позиционировали как кроссплатформенное решение. Полная поддержка есть только для Windows. Стараниями фирмы Novell есть попытка .NET перевести на *nix. Но фирму Novell уже продали. И насколько я слышал, купил ее фонд довольно близкий M$. Так что, дальнейшая судьба проекта mono не известна. Да и на моей памяти сушествует всего 3 проэкта написанных на mono.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
zubr
Гость
« Ответ #34 : 04-09-2011 16:17 » 

Ochkarik, ну есть еще мазохисты, которые гуи на ассемблере пишут, но это все скорее исключения, подтверждающие правило.
Записан
Ochkarik
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #35 : 04-09-2011 17:15 » 

Finch, да я ни одного слова не сказал о NET) это просто были размышления что есть некоторые программы по недоразумению написанные без....

zubr,
ага. и QT для Windows, наверное тоже не использует API, либо ее те самые извращенцы пишут) оно наверное как-то так работает... само собой) интересно для чего библиотека QtGui.dll обращается к библиотеке GDI32.dll? случайно наверное)
это не спор.... я просто хочу сказать что хоть кто то, но должен помнить о том что есть такое слово API)

Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
zubr
Гость
« Ответ #36 : 04-09-2011 18:06 » 

Цитата
zubr,
ага. и QT для Windows, наверное тоже не использует API, либо ее те самые извращенцы пишут) оно наверное как-то так работает... само собой) интересно для чего библиотека QtGui.dll обращается к библиотеке GDI32.dll? случайно наверное)
это не спор.... я просто хочу сказать что хоть кто то, но должен помнить о том что есть такое слово API)
Наверняка использует, более того, для тебя наверно не секрет, что большинство более менее серьезных приложений использует API, но зачастую, если речь идет о нестандартном гуи или системных задачах. Не думаю что в том же QT все окна и диалоги сделаны на чистом API.
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #37 : 04-09-2011 19:11 » 

QT, конечно, использует Win32 API в винде. Но QT является кроссплатформенной библиотекой и точно также использует другие API, характерные для используемой платформы. Главное, что это полноценный классовый фреймворк, дающий обширный сервис через свое API.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Ochkarik
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #38 : 04-09-2011 19:40 » 

да ладно.. я то чего полез) я и читать не умею)
« Последнее редактирование: 04-09-2011 20:05 от Ochkarik » Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #39 : 05-09-2011 03:47 » 

Ochkarik, так в винде то конечно использует, как же не использовать, приложение ведь запущено в винде )). Ну так и IDE виндового варианта используется Улыбаюсь

 в Qt виндовое окно и диалог, но вот содержимое их - чисто отрисованное, спаем не палится ничего
Записан

Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #40 : 05-09-2011 09:50 » 

Цитата: Алексей1153++
в Qt виндовое окно и диалог, но вот содержимое их - чисто отрисованное, спаем не палится ничего
И это правильно - нечего окна плодить без нужды. Окно я признаю только в том случае, если его надо двигать поверх других. Всё остальное достаточно просто рисовать как картинку. А в Windows любая кнопка - уже отдельное окно.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #41 : 05-09-2011 11:38 » 

Dimka, так в Qt и философия окон (виджетов) совсем другая Улыбаюсь

Насчёт кнопок: в винде кнопки/окна ввода/и прочие элементы управления, созданные из ресурса, - не есть постоянно отдельное окно , в отличие от созданных через Create собственноручно. Они там временные (как это разграничено - я не знаю, наверное имеется некий пул хендлов, если окно неактивно, хендлы его контролов могут быть захапаны другими окнами). Поэтому доступ к хендлу контрола осуществляется через GetDlgItem(hParent,ID) . Если же пытаться сохранить хендлы контролов в мап, к примеру , то всё это проработает некоторое время, а потом рухнет )))

в Qt же всегда - один хендл на один диалог. Ну ко всем остальным виджетам - доступ только по указателю
« Последнее редактирование: 05-09-2011 11:41 от Алексей1153++ » Записан

Ochkarik
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #42 : 05-09-2011 16:30 » 

Поэтому доступ к хендлу контрола осуществляется через GetDlgItem(hParent,ID) .
по моему это не совсем так. это верно только для диалогов - там обращение к контролам может происходить по его ID (а может и не происходить).
для контролов, рожденных на классе основного окна(на родительском окне) - хендл выдается при рождении и дальнейшее обращение к контролу происходит через него. при стандартном пути создания окна (как это было изначально предусмотрено) все контролы могут размещатся во время WM_CREATE (да и в любое другое время тоже кстати. хоть динамически), путем вызова:
   //поле вводда разрядности квантования
   hwndEdit_ =      CreateWindowEx();
дальнейшие манипуляции с контролом происходят через его хендл:
   SendMessage(hwndEdit_,WM_SETFONT,fnt_avf,0);

обработчик диалога просто хранит список сопоставлений ID и хендлов. собственно то, что это диалог - это просто дополнительный скрипт который выполняет действия размещения контролов, по таблице из ресурсов. плюс это некий дефолтный обработчик некоторых сообщений винды.

но я не понимаю почему это так пугает. хендл - по сути просто некий косвенный указатель на описатель контрола и его свойства.
вас же не пугает что каждый класс QT хранит то же самое? да и делает то же самое, только на уровне своей "сторонней библиотеки" а не встроенной?
это почти то же самое, что боятся того что каждая новая кнопка - это новый экземпляр класса)))
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #43 : 05-09-2011 19:51 » 

>>по моему это не совсем так.
так я и говорю, что хендлы мечутся только у контролов, созданных из ресурса. Прочитай повнимательнее мой пост;)

ну а Qt не делает то же самое. Хотя, я их и не сравнивал - лучше или хуже. Просто иначе
Записан

Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #44 : 05-09-2011 21:04 » 

Цитата: Ochkarik
но я не понимаю почему это так пугает. хендл - по сути просто некий косвенный указатель на описатель контрола и его свойства.
вас же не пугает что каждый класс QT хранит то же самое? да и делает то же самое, только на уровне своей "сторонней библиотеки" а не встроенной?
это почти то же самое, что боятся того что каждая новая кнопка - это новый экземпляр класса)))
Разница принципиальная. Концептуально окно - это прямоугольная область... (и т.д., и т.п.) И это худшая абстракция, чем абстракция "представление" (view). Потому что view не подразумевает ни способа вывода, ни формы, а окно уже подразумевает некоторые специфические свойства. А потом начинаются танцы с бубном (например, прозрачности для окон непрямоугольной формы и т.п.).

Т.е. окно как концепция - неудачная основа иерархии сущностей. Впрочем, поскольку в WinAPI ООП в зачаточном состоянии - тяжёлое наследние 1985 года, окно как основа понятно. Но морально устарело Улыбаюсь
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Ochkarik
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #45 : 05-09-2011 22:19 » 

>>по моему это не совсем так.
так я и говорю, что хендлы мечутся только у контролов, созданных из ресурса. Прочитай повнимательнее мой пост;)

ну а Qt не делает то же самое. Хотя, я их и не сравнивал - лучше или хуже. Просто иначе
я имел в виду что любой контрол в винде создается одинаково) в конечном счете через CreateWindowEx, просто в диалоге это делает встроенный скрипт. про "мечутся" я не понял наверное) про QT - это Дмитрию)

Цитата: Ochkarik
но я не понимаю почему это так пугает. хендл - по сути просто некий косвенный указатель на описатель контрола и его свойства.
вас же не пугает что каждый класс QT хранит то же самое? да и делает то же самое, только на уровне своей "сторонней библиотеки" а не встроенной?
это почти то же самое, что боятся того что каждая новая кнопка - это новый экземпляр класса)))
Разница принципиальная. Концептуально окно - это прямоугольная область... (и т.д., и т.п.) И это худшая абстракция, чем абстракция "представление" (view). Потому что view не подразумевает ни способа вывода, ни формы, а окно уже подразумевает некоторые специфические свойства. А потом начинаются танцы с бубном (например, прозрачности для окон непрямоугольной формы и т.п.).
вот я и пугаюсь, что однажды приду домой, и буду открывать полупрозрачную, непрямоугольную дверь, серповидным в крапинку ключом ))) я уж молчу про окна)

а насчет неудачной иерархии... вам удобно пользоваться овальными кнопками на сферических программах?)
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
zubr
Гость
« Ответ #46 : 06-09-2011 03:09 » 

Цитата
а насчет неудачной иерархии... вам удобно пользоваться овальными кнопками на сферических программах?)
Это смотря для каких целей. К примеру для подобной программы:

вполне.

* f_4dfa585cbdd2b.jpg (16.3 Кб - загружено 1437 раз.)
Записан
Ochkarik
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #47 : 06-09-2011 05:29 » 

эммм) красиво) еще какой нибудь стрелочный индикатор рядом напрашивается) даже странно что их перестали применять... вот была ВЕЩЬ!

я минут через пять понял, что это какой то таймер))) а чтобы настроить - надо водить мышкой вокруг центра?

вот жешь, а такое я в живую даже не представлял что делали...
« Последнее редактирование: 06-09-2011 05:33 от Ochkarik » Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
zubr
Гость
« Ответ #48 : 06-09-2011 06:10 » 

Да, таймер, мышкой берешь за ползунок и крутишь. Я этот проект полгода назад делал.
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #49 : 06-09-2011 06:19 » 

zubr, а кто рисовал?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
zubr
Гость
« Ответ #50 : 06-09-2011 06:32 » 

Заказчик предоставил скрины.
Записан
Страниц: 1 [2]  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines