Главная » C++, C++ Builder » Использование CBuilder в MFC

0

Если вы работаете программистом в какой-нибудь компании и решили прочесть эту книгу, почти наверняка на изучение CBuilder вас подвигла одна из двух самых распространенных проблем. Первая из них возникает в том случае, если ваша компания уже осуществляет разработки в Delphi и вам приходится изучать CBuilder, поскольку большая часть программ написана все-таки на C++, а не на Pascal. Если это так, данная глава не представляет для вас большого интереса. Вторая проблема возникает в том случае, если ваша компания уже использует  Visual C++ и MFC (эта комбинация является самым распространенным средством разработок под Windows). В  этом случае предлагаемая глава — то, что вам действительно надо.

Это просто позор, что большая часть компаний, использующих C++ для разработки своих коммерческих приложений под Windows, используют также и MFC, ведь MFC — это настоящее ископаемое среди средств разработки под Windows. При использовании MFC вы можете работать только в заданной им среде, не имея практически никаких возможностей сделать  что-то  по- своему. Как программист, вдоволь наработавшийся с Visual C++ и MFC, я знаю, как расстраивают заявления заказчика типа: «Вы сделали то, что надо. Не могли бы вы только сделать так, чтобы текст отображался нежно-зеленым цветом?»

Для того чтобы двигаться дальше, вам надо четко осознать разницу между подходом VCL и подходом MFC. VCL — это набор компонентов, которые позволяют вам создавать приложения с нуля, а MFC — это библиотека классов, которая позволяет вам разрабатывать приложения только в рамках шаблона, представляе мого кодом, который генерирует Мастер приложений. И здесь, конечно, главное отличие состоит в том, что MFC определяет вид приложения, каким его увидит конечный пользователь (MDI, SDI или основанный на окнах диалога), в то время как VCL позволяет вам смешивать существующие и добавлять новые элементы таким образом, чтобы ваше приложение выглядело именно так, как вы этого хотите.

Да простят меня  приверженцы  MFC,  но все же я предпочитаю открытый и благожелательный подход VCL жесткому закрытому подходу MFC. Но это, как говорится, кому что нравится.

Возможно, вы думаете, что есть-таки способ внести все то хорошее, что я перечислил, и в ваши приложения на MFC, и вы просто не знаете, как это сделать.

Так вот, я хочу сообщить вам, что нет таких причин, по которым вы не могли бы использовать прелести форм VCL в своих приложениях MFC. Заставить две системы понимать друг друга не слишком просто, но если вы хотите охватить максимум возможностей и работать сразу на двух системах,  то  вскоре  увидите,  что  ваши  программы  на  Visual  C++  вполне  могут  выиграть  от

использования VCL и нового подхода, основанного на использовании форм.

Не думайте, что я сошел с ума. И на солнце я тоже не перегрелся. Запомните — использовать формы, основанные на VCL, и систему, основанную на MFC, вполне возможно. В данной главе мы посмотрим, как это можно сделать; весь процесс — от сознания форм в CBuilder до их внедрения в приложение MFC. Мы научимся огибать все подводные камни и не оставим в своих приложениях ни одной ошибки или неточности (ну, или, во всяком случае, почти ни одной).

Использование CBuilder в приложениях MFC

Если вы на минутку задумаетесь над проблемой, которую мы хотим разрешить, то поймете, что просто невозможно встроить код, основанный на VCL, в приложение MFC. В конце концов, VCL использует свой собственный формат объектов, свой собственный код запуска и огромную библиотеку компонентов, которая наверняка не будет функционировать в MFC. С другой стороны, в CBuilder можно без особого труда создавать динамически подключаемые библиотеки (DLL), которые можно без труда использовать в других системах. Ведь DLL — и в Африке DLL, так что любая система, которая умеет с ними работать, будет работать с DLL, написанной на любом языке. Этот подход мы и будем применять при создании форм CBuilder для использования в приложениях на Visual C++, базирующихся на MFC.

Источник: Теллес М. – Borland C++ Builder. Библиотека программиста – 1998

По теме:

  • Комментарии