Mfc зло или добро?
Что выбрать api или MFC???:-?
Можно дать поиск в Yandex на это слово.
Привет!
Слушай, интересная у вас тут беседа получилась, даже я много умных вещей впитал. Я и сам согласен что MFC немного неуклюжа, но без нее никак т.к. пишу в основном клиенты баз данных. И вдруг вижу твой пост, в котором ты говоришь что подключился к базе через апи, если не секрет - поведай бездарю, а?
Интересная тема для разговора, чтож, MFC немного работает медленнее WinAPI, но быстрее чем любое на других языках (за исключением Assembler :) ), нопозволяет быстрее создавать приложения раза в два быстрее чем на API. Да и объектная технология дает многое. Если не считать нескольких багов, подобных отсутствию настоящих модальных окон (DoModal - липа с системного взглюда).
Интересная тема для разговора,
Интересная тема для демагогий.
чтож, MFC немного работает медленнее WinAPI,
Немного, это на сколько км/час?
но быстрее чем любое на других языках (за исключением Assembler :) )
Чем любое что? Какое отношение MFC имеет к ассемблеру?
, нопозволяет быстрее создавать приложения раза в два быстрее чем на API.
Каким прибором мерил?
Да и объектная технология дает многое.
Многое что?
Если не считать нескольких багов, подобных отсутствию настоящих модальных окон (DoModal - липа с системного взглюда).
Ага, там плюшевые окна. Что то я не понял что там липа?
Короче, конкретнее надо быть. А то как в анекдоте:
- Армяне луче чем грузины!
- Чем лечше?
- Чем грузины!
Ну ты и кретин!
Ну спасибо за исчерпывающий ответ (я думаю в этой фразе ты себя исчерпал)
Ну спасибо за исчерпывающий ответ (я думаю в этой фразе ты себя исчерпал)
боюсь что нет,
что касается липы с модальными окнами,
в MFC при вызове DoModal реально вызывается функция WinAPI DialogBoxIndirect, реально кажется что вызвано, модальное окно, но все скрывается за счет внутреннего цикла обработки событий, как известно совершенно прозрачного для програмера.
Что касается скорости, VC++ генерирует код, который в среднем на 10% медленнее кода на Assembler (если код нормальный), чтоже касается API, то всего на 5 процентов, только в моменты обработки событий, что связано с использованием виртуальных таблиц
что касается липы с модальными окнами,
в MFC при вызове DoModal реально вызывается функция WinAPI DialogBoxIndirect, реально кажется что вызвано, модальное окно, но все скрывается за счет внутреннего цикла обработки событий, как известно совершенно прозрачного для програмера.
А как выглядит "настоящее" модальное окно? :)
Что касается скорости, VC++ генерирует код, который в среднем на 10% медленнее кода на Assembler (если код нормальный), чтоже касается API, то всего на 5 процентов, только в моменты обработки событий, что связано с использованием виртуальных таблиц
Прочитал, попробовал вникнуть...
Не смог... :)
Что сказать то хотел?
Что касается скоростей, сколько можно одну и ту же туфту мусолить?
На основании чего ты приводишь какие-то проценты и т.п.? Очередной научно-популярный журнал?
Кроме того мы вроде бы говорили об MFC, тогда причем тут VC++?
Что касается API (видимо, Win32 API) то вообще не понятно, причем тут ассемблер и VC++ и виртуальные таблицы...
Каша какая-то...
Я си изучать начал позже ассемблера.
И с уверенностью говорю что ты не прав.
И притом ко всему, ассемблера работает много быстрее твоих пяти процентов.
Только по той причине, что на ассемблере, чтобы реализовать одну из фич кода генерируется не на 5 процентов меньше.
Движки, любые, лучше всего писать именно на ВинАПИ, и тут уже никто не может возразить.
А вот с визуальными компонентами безусловно лучше всего использовать готовые библиотеки.
В целях набирания опыта, понаписал несколько компонентов на винапи, такие как Лэйбол, комбобох, едит, кнопка. ВСЁ НАХ. больше не хочу. лучше буду использовать ВКЭАЛЬНЫЕ аналоги.
Едисвенное что, если следует писать свой визуальный компонент аналога которого нет, тогда родителем все же буду брать АПИ, а не ВКЛ. Уж очень он мя напрягает. К примеру в планах, написать RichEdit со смайликами.
Использовать буду Riched20.dll и всё.
Движки, любые, лучше всего писать именно на ВинАПИ, и тут уже никто не может возразить.
Ну я могу возразить, только для начала давай определимся, что ты под "движками" подразумеваешь?
понаписал несколько компонентов на винапи, такие как Лэйбол, комбобох, едит, кнопка.
Чего-то не вкурю, что их писать-то? CreateWindowEx и все дела...
Ну я могу возразить, только для начала давай определимся, что ты под "движками" подразумеваешь?
Товарисч подразумевает компоненты которым не нужен интерфейс.