MegaMozg wrote:
> MZ>Почему кстати ? WinApi в большинстве своём > MZ>построена по принципам ООП. > > а поподробнее можно?
Три основных модуля Win32 API (kernel user GDI)
построены по объектно-ориентированному принципу.
В основном это хорошо видно на user-е. Все окна --
объекты, у них есть методы (сообщения), есть свойства.
Ну и так далее. Не всегда и везде это им удавалось
выдержать до конца, особенно в GDI, но всё же.
А о познейших модулях, построенных целиком на COM
и говорить не приходится.
MZ>Три основных модуля Win32 API (kernel user GDI) MZ>построены по объектно-ориентированному принципу. MZ>В основном это хорошо видно на user-е. Все окна -- MZ>объекты, у них есть методы (сообщения), есть свойства. MZ>Ну и так далее. Не всегда и везде это им удавалось MZ>выдержать до конца, особенно в GDI, но всё же.
Это еще не ООП. Три столпа объектно-ориентированного проектирования: инкапсуляция, наследование, полиморфизм.
А в Win32 API есть структуры данных и есть множество функций, которые с этими структурами работают.
И в здесь правильнее говорить: "окна — могли бы быть объектами классов с методами обработчиками сообщений".
И вот это "могли бы быть" реализуется в библиотеках подобных MFC, Qt etc.
Здравствуйте, LaptevVV, Вы писали:
LVV>В общем, идеально давать два варианта сразу: LVV>QtCreator+Qt LVV>CodeBlocks+vxWidget LVV>Думаю сделать лабы на построение разнообразных интерфейсов LVV>и задавать делать их в обоих вариантах — пусть студиозы сравнивают.
ИМХО, это только запутает. Больно уж разные подходы — сигнал/слот vs сообщения. Тем более, что сообщения (events) есть и в Qt, так что, в смысле возможности объяснить "обработку сообщений" Qt другим библиотекам не проигрывает.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, LaptevVV, Вы писали:
LVV>Работаем со Студией. Я вижу варианты: LVV>1. Использовать С++/СДШ (не хотелось бы — много тонкостей в С++/CLI) LVV>2. MFC/ATL/WTL. Мне кажется несколько тяжеловесно для 2 курса? Зато информации о ней много. LVV>3. Qt — знаком только по книжке Шлее. Но библиотека популярна, что повышает ценность знакомства с ней. И среда есть — QtCreator. Есть доки на русском LVV>4. vxWidget — ничего не знаю, только то, что в инете можно прочитать. LVV>5. Win32++ — относительно простая библиотека, но инфа тоже из инета.
LVV>Что посоветуете?
Шестым пунктом посоветую еще Juce. Оставила приятное ощущение после ознакомления. Кросс-платформенная, написанная "на понятном языке" (наглядный ООП-подход, не перегруженный замысловатыми сущностями и многоэтажными шаблонами), с качественными комментариями в коде. По уровню абстракции сходна с wxWidget. Автор ориентируется на GUI и софт для работы со звуком. Под Windows собирается на MSVC, начиная с 6-го или в CodeBlocks. Есть забавный вариант для тех, кому лень собирать отдельно: включить пару подготовленных заранее "amalgamated"-файлов (cpp/h) непосредственно в свой проект.
Здравствуйте, MasterZiv, Вы писали:
MZ>Это всё понятно, но это не называется "Красивый дизайн".
Тут палка о двух концах или красивый дизайн или производительность. Или MVC или Вид/Документ, или использование мощи С++ в виде полиморфизма или макросы без оверхеда на вызов и на память.
Компьютер — это конечный автомат. Потоковое программирование нужно тем, кто не умеет программировать конечные автоматы (c) Алан Кокс
MegaMozg wrote:
> Это еще не ООП. Три столпа объектно-ориентированного проектирования: > инкапсуляция, наследование, полиморфизм.
Всё это есть.
> А в Win32 API есть структуры данных и есть множество функций, которые с > этими структурами работают.
Ты не понял нифига. Перечитай ещё раз.
> И в здесь правильнее говорить: "окна — *могли бы быть* объектами классов > с методами *обработчиками* сообщений".
Они и есть объекты, если ты это не понимаешь, это твоя проблема.
> И вот это "могли бы быть" реализуется в библиотеках подобных MFC, Qt etc.
MFC делает только удобную обёртку для работы с WinAPI на С++.
Делает WInAPI более С++-овым.
Здравствуйте, LaptevVV, Вы писали:
LVV>Работаем со Студией. Я вижу варианты:
.. LVV>3. Qt — знаком только по книжке Шлее. Но библиотека популярна, что повышает ценность знакомства с ней. И среда есть — QtCreator. Есть доки на русском
..
И очень кстати существует ещё и плагин для Студии для работы с Qt.
Здравствуйте, ry, Вы писали:
ry>И очень кстати существует ещё и плагин для Студии для работы с Qt.
На сайте Qt вроде поновее есть — для работы в 2008 студии.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, LaptevVV, Вы писали:
LVV>Здравствуйте, ry, Вы писали:
ry>>И очень кстати существует ещё и плагин для Студии для работы с Qt. LVV>На сайте Qt вроде поновее есть — для работы в 2008 студии.
Ссылку будь добр, а то у Нокии он там самый последний.
Здравствуйте, LaptevVV, Вы писали:
LVV>Аналогично IDE вопрос по библиотеке для создания интерфейса. LVV>Студиохps на 2 курсе пишут 2 курсовые. LVV>Первая — по программированию на языке высокого уровня (С++), вторую — по ООП на С++. LVV>Если в первой курсовой основная задача — познакомить народ с процессом самостоятельной работы над проектом, то во второй хотелось бы паознакомить с разработкой типового интерфейса из окон-меню-кнопок-формочек. LVV>Работаем со Студией. Я вижу варианты: LVV>1. Использовать С++/СДШ (не хотелось бы — много тонкостей в С++/CLI) LVV>2. MFC/ATL/WTL. Мне кажется несколько тяжеловесно для 2 курса? Зато информации о ней много. LVV>3. Qt — знаком только по книжке Шлее. Но библиотека популярна, что повышает ценность знакомства с ней. И среда есть — QtCreator. Есть доки на русском LVV>4. vxWidget — ничего не знаю, только то, что в инете можно прочитать. LVV>5. Win32++ — относительно простая библиотека, но инфа тоже из инета.
LVV>Что посоветуете?
Я посоветую для С++ использовать Билдер, а для C# использовать WindowsForms. Это для выполнения заданий которые не связаны с изучением самих библиотек графического интерфейса.
Дело вот в чем. Я слышал, что VCL и WindowsForms разрабатывались под руководством одного и того же человека. Они много чем похожи.
Студентам эти две библиотеки будут удобны тем, что там всё интуитивно понятно. Не нужно читать никакую документацию, чтобы создавать интерфейс. И если же создание интефейса не является главной целью написания программы, это очень хорошо.
Так же можно рассказать про другие библиотеки и дать на них пару лаб.
Все остальные библиотеки для С++ не идут ни в какое сравнение с VCL. Несмотря на то что там можно создать более продвинутый интерфейс, они поразительно не удобны и у них ужасная архитектура. Это удивительная ситуация. Столько библиотек и все такие плохие.
Если же заставить студентов делать кучу лаб с интефейсом с использованием других библиотек, студенты либо ничего не будут делать (потому что среднестатистическому студенту будет лень копаться в документации на английском языке), либо будут тратить много времени и всё проклинать.
Здравствуйте, ry, Вы писали:
ry>Здравствуйте, LaptevVV, Вы писали:
LVV>>Здравствуйте, ry, Вы писали:
ry>>>И очень кстати существует ещё и плагин для Студии для работы с Qt. LVV>>На сайте Qt вроде поновее есть — для работы в 2008 студии.
ry>Ссылку будь добр, а то у Нокии он там самый последний.
Возможно, я кой-чего не понял.
Вот такой архив:
qt-win-opensource-4.6.3-vs2008.exe
это не оно?
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, LaptevVV, Вы писали:
ry>>Ссылку будь добр, а то у Нокии он там самый последний. LVV>Возможно, я кой-чего не понял. LVV>Вот такой архив: LVV>qt-win-opensource-4.6.3-vs2008.exe LVV>это не оно?
Думаю, там всё-таки версия 1.1.5 должна лежать или младше. Честно говоря, не смотрел. У меня 1.1.1.
Здравствуйте, LaptevVV, Вы писали:
LVV>Аналогично IDE вопрос по библиотеке для создания интерфейса. LVV>Студиохps на 2 курсе пишут 2 курсовые. LVV>Первая — по программированию на языке высокого уровня (С++), вторую — по ООП на С++.
Можно еще посмотреть на фреймворк Ultimate++ — там работа с окошками вполне в ООП-стиле и довольно красиво выглядит:
Фреймворк кроссплатформенный (позволит не трогать WinAPI) и c родным для системы Look-and-feel.
Вообще очень хороший пример, чтобы посмотреть, какие штуки можно вытворять с помощью препроцессора и шаблонов С++.
Разве только студия там своя — TheIDE, со своим редактором форм, иконок и другими плюшками.