MFC или API.
От: GT  
Дата: 25.07.02 08:32
Оценка:
Всем привет!
Вопрос для людей, хоршо подкованных в теории програмирования. Меня всегда интересовал вопрос: Если можно обойтись без MFC, стоит ли без него обходится. Поясню на примере. Если есть прога, работающая, к примеру со стрингами, то можно воспользоваться например MFC-шным классом CString, а можно обойтись и функциями API. Как в этом случае поступить? (Я прошу не зацикливаться на стрингах, это только для примера. А проблема меня интересует в общем плане.) На что (и как) влияет MFC? Об'ем исполняемого кода — это понятно, а еще на что? И на сколько ве это критично?
Зарание благодарен всем, кто примет участие в обсуждении! Думаю ответы и советы(разумеется аргументированные) по данной теме будут полезны не только мне.
С ув. Геннадий.
Если мы хотим до шлема добраться...
Re: MFC или API.
От: Daniel  
Дата: 25.07.02 11:11
Оценка:
Тут скорее вопрос не теории, а практики.
А практика показывает, что обойтись одиним API достаточно сложно. Неизбежно придется самому создавать библиотеку классов, шаблонов подобную MFC, ATL и др. Это особенно актуально, если программе необходим GUI.
Недостатков у MFC полно. Тот же CString весьма далек от совершенства, множественное наследование от CObject не возможно и т.д. Но зато работая с Visual Studio очень удобно пользуясь ClassWizardo-ом создавать диалоги, обрабатывать события от элементов управления, есть wrapper классы почти для всех стандартных Windows controls. Можно быстро накидать простой интерфейс в стиле Windows Explorer-а. А вот для MMC snapin-а уже ATL нужен, хотя скорее всего все равно придется переделывать быблиотечные шаблоны под себя.
Re: MFC или API.
От: Mink Россия  
Дата: 25.07.02 12:03
Оценка:
Здравствуйте GT, Вы писали:

GT>Всем привет!

GT>Вопрос для людей, хоршо подкованных в теории програмирования. Меня всегда интересовал вопрос: Если можно обойтись без MFC, стоит ли без него обходится. Поясню на примере. Если есть прога, работающая, к примеру со стрингами, то можно воспользоваться например MFC-шным классом CString, а можно обойтись и функциями API. Как в этом случае поступить? (Я прошу не зацикливаться на стрингах, это только для примера. А проблема меня интересует в общем плане.) На что (и как) влияет MFC? Об'ем исполняемого кода — это понятно, а еще на что? И на сколько ве это критично?
GT>Зарание благодарен всем, кто примет участие в обсуждении! Думаю ответы и советы(разумеется аргументированные) по данной теме будут полезны не только мне.
GT>С ув. Геннадий.

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

Но вообще, ИМХО, если можно обойтись без MFC (т.е. отказ от MFC не потребует значительных дополнительных усилий при разработке), то стоит без него обходиться.
Сила, она в ньютонах
Re: MFC или API.
От: CooLer Россия http://bestsoft.far.ru
Дата: 29.07.02 15:11
Оценка:
Здравствуйте GT, Вы писали:

GT>Всем привет!

GT>Вопрос для людей, хоршо подкованных в теории програмирования. Меня всегда интересовал вопрос: Если можно обойтись без MFC, стоит ли без него обходится. Поясню на примере. Если есть прога, работающая, к примеру со стрингами, то можно воспользоваться например MFC-шным классом CString, а можно обойтись и функциями API. Как в этом случае поступить? (Я прошу не зацикливаться на стрингах, это только для примера. А проблема меня интересует в общем плане.) На что (и как) влияет MFC? Об'ем исполняемого кода — это понятно, а еще на что? И на сколько ве это критично?
GT>Зарание благодарен всем, кто примет участие в обсуждении! Думаю ответы и советы(разумеется аргументированные) по данной теме будут полезны не только мне.
GT>С ув. Геннадий.

Могу сказать так — если тебя не напрягает писать под API — пиши. Когда я только начинал писать под окошки я начинал с API. Надо сказать, что я закопался в мегатоннах кода и так и не дописал ни одной программы до конца

И тогда мне на помощь пришел MFC! Он "обернул" всю апишную шелуху в красивую обертку и все сразу стало легко и просто.

Мой совет: если не хочешь заработать лишний геморрой — использую MFC.

Однако, при всем при том, знать API совсем не вредно, а очень даже полезно, даже при написании программ под MFC!
"Выше голову" — сказл палач, надевая петлю
Re[2]: MFC или API.
От: econt Украина http://cprime.110mb.com
Дата: 30.07.02 05:06
Оценка:
Здравствуйте Daniel, Вы писали:

D>Тут скорее вопрос не теории, а практики.

D>А практика показывает, что обойтись одиним API достаточно сложно. Неизбежно придется самому создавать библиотеку классов, шаблонов подобную MFC, ATL и др. Это особенно актуально, если программе необходим GUI.
D>Недостатков у MFC полно. Тот же CString весьма далек от совершенства, множественное наследование от CObject не возможно и т.д. Но зато работая с Visual Studio очень удобно пользуясь ClassWizardo-ом создавать диалоги, обрабатывать события от элементов управления, есть wrapper классы почти для всех стандартных Windows controls. Можно быстро накидать простой интерфейс в стиле Windows Explorer-а. А вот для MMC snapin-а уже ATL нужен, хотя скорее всего все равно придется переделывать быблиотечные шаблоны под себя.

Практически полностью согласен. Конечно, обойтись одним API сложно. Но во многих случаях это оправдано. Если ты как программист можешь писать только на API, почему бы и не писать на нем некоторые программы?
См. также мой сайт: http://cprime.hypermart.net
Возможно он наведет тебя на некоторые размышления.
Мне никогда не нравилась MFC. (c) Charles Petzold
Re: MFC или API.
От: Dima2  
Дата: 30.07.02 08:12
Оценка:
Здравствуйте GT, Вы писали:

Не правильно ставиш вопрос.
Надо спрашивать .NET или MFC
А программировать даже сейчас обычные приложения на API не кому в голову не прийдет.
Re[2]: MFC или API.
От: Алекс Россия http://wise-orm.com
Дата: 30.07.02 08:17
Оценка:
Здравствуйте Dima2, Вы писали:

D>Здравствуйте GT, Вы писали:


D>Не правильно ставиш вопрос.

D>Надо спрашивать .NET или MFC
D>А программировать даже сейчас обычные приложения на API не кому в голову не прийдет.

Однако форум WinAPI существует и помирать не собирается!
Re[3]: MFC или API.
От: Dima2  
Дата: 30.07.02 08:36
Оценка:
Здравствуйте Алекс, Вы писали:

А>Однако форум WinAPI существует и помирать не собирается!


Да он, умрет вместе со смертью Windows Наверное это будет самый постоянный форум, потому как через пару лет возможно форум MFC прийдется убирать за ненадобностью.
Re[4]: MFC или API.
От: Алекс Россия http://wise-orm.com
Дата: 30.07.02 09:12
Оценка:
Здравствуйте Dima2, Вы писали:

D>Здравствуйте Алекс, Вы писали:


А>>Однако форум WinAPI существует и помирать не собирается!


D>Да он, умрет вместе со смертью Windows Наверное это будет самый постоянный форум, потому как через пару лет возможно форум MFC прийдется убирать за ненадобностью.


Однако, работодатели не сразу поймут, когда ты скажешь что о MFC ты не слышал и слышать не хочешь.

З.Ы. Мнение провинциала.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.