Microsoft Foundation Classes (MFC) не устанавливаются в Visual Studio 2019 по умолчанию. Для начала работы с проектами на основе MFC необходимо вручную включить соответствующий компонент через установщик Visual Studio. Без этого шаблоны MFC-проектов и библиотеки будут недоступны, а попытка сборки вызовет ошибки компиляции.
Для корректной установки потребуется выбрать рабочую нагрузку «Разработка классических приложений на C++» и дополнительно активировать компонент «Поддержка MFC и ATL». Эти параметры доступны через модификацию существующей установки Visual Studio.
Важно убедиться, что используется версия Visual Studio 2019 не ниже 16.11. Поддержка MFC стабильна именно в этой ветке, особенно при работе с современными Windows SDK. Также следует заранее обновить Visual Studio Installer до последней версии, чтобы избежать возможных сбоев при загрузке компонентов.
Перед установкой рекомендуется закрыть все экземпляры Visual Studio и сохранить текущие проекты. Установка MFC требует прав администратора и перезапуска IDE для применения изменений. Следуя пошаговой инструкции, вы получите полностью готовую среду для разработки MFC-приложений на C++.
Проверка наличия компонента MFC в установленной Visual Studio 2019
Чтобы убедиться, что компонент MFC установлен в Visual Studio 2019, запустите «Visual Studio Installer». Найдите в списке установленную версию Visual Studio 2019 и нажмите кнопку «Изменить».
В открывшемся окне перейдите на вкладку «Рабочие нагрузки» и найдите раздел «Разработка классических приложений на C++». Если он установлен, нажмите на него, затем перейдите во вкладку «Индивидуальные компоненты».
Прокрутите список вниз до категории «SDKs, библиотеки и фреймворки». Найдите пункт «MFC и ATL для x86 и x64». Если он отмечен галочкой – компонент установлен. Если пункт отсутствует или не выбран – необходимо установить его вручную.
Для быстрой проверки без использования установщика откройте Visual Studio 2019, создайте новый проект и выберите шаблон «MFC App». Если шаблон недоступен – компонент не установлен.
Альтернативно проверьте наличие каталога по пути:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\<версия>\atlmfc
Если папка atlmfc
отсутствует, MFC не установлен. В этом случае необходимо вернуться в установщик и доустановить компонент через вкладку «Индивидуальные компоненты».
Добавление компонента MFC через Visual Studio Installer
Открой Visual Studio Installer, выполнив поиск «Visual Studio Installer» в меню «Пуск» Windows. Если он не установлен, запусти файл установки Visual Studio 2019 и выбери «Изменить» для уже установленной версии среды.
В появившемся окне выбери пункт «Рабочие нагрузки». Найди категорию «Разработка классических приложений на C++». Убедись, что установлен флажок рядом с этой рабочей нагрузкой.
После этого в правой части окна появятся дополнительные параметры установки. Пролистай список и найди пункт «Поддержка MFC и ATL». Установи соответствующий флажок. Также стоит активировать компонент «Разработка на C++ для Windows», если он ещё не выбран.
Нажми «Изменить» в правом нижнем углу окна, чтобы запустить процесс установки выбранных компонентов. Дождись окончания установки – это может занять несколько минут в зависимости от скорости интернета и конфигурации системы.
После завершения установки перезапусти Visual Studio 2019. Теперь в окне создания проекта должен отображаться шаблон «Приложение MFC». Если шаблон недоступен, проверь список установленных компонентов ещё раз – возможно, установка прошла с ошибкой или был пропущен нужный модуль.
Создание нового проекта с поддержкой MFC
Откройте Visual Studio 2019. В стартовом окне выберите Создать проект. В поле поиска введите MFC и выберите шаблон MFC App. Нажмите Далее.
Укажите имя проекта, расположение и при необходимости измените имя решения. Нажмите Создать.
В открывшемся мастере настройки проекта выполните следующие действия:
- Выберите Приложение с поддержкой документа/представления (Document/View architecture), если планируется работа с классами CDocument и CView. Для простых интерфейсов выберите Однодокументное приложение (SDI).
- Установите Использовать библиотеки MFC как DLL, если требуется уменьшить размер исполняемого файла. Для полной автономности используйте Статически связываемые библиотеки.
- Отключите поддержку атласа ресурсов, если не планируете использовать его. Это упростит структуру проекта.
- Снимите флажки с опций Мастер страниц и ActiveX, если не требуются встроенные компоненты управления.
- На этапе выбора функций интерфейса оставьте только необходимые: например, Панель инструментов и Строка состояния. Удалите меню Окно, если оно не используется.
Нажмите Готово. Visual Studio создаст структуру проекта с подключёнными заголовками, классами и файлами ресурсов. Проверьте наличие вызовов инициализации MFC в InitInstance()
и убедитесь, что в свойствах проекта в разделе Use of MFC установлено Use MFC in a Shared DLL или Use MFC in a Static Library в зависимости от выбранного варианта.
Выбор шаблона приложения MFC и настройка параметров проекта
После установки поддержки MFC в Visual Studio 2019 откройте меню File → New → Project и выполните поиск по ключевому слову MFC. Выберите шаблон MFC App и нажмите Next.
В поле Project name укажите уникальное имя проекта, избегайте пробелов и специальных символов. Путь в Location не должен содержать русских букв или нестандартных символов – это исключит проблемы с компиляцией и путями.
Нажмите Create и в открывшемся мастере выберите один из типов приложения:
Single document – для программ с одним окном и простым интерфейсом.
Multiple documents – если проект предполагает работу с несколькими окнами (например, редактор с вкладками).
Dialog based – для приложений с управлением через диалоговое окно, без полноценного окна документа.
На следующем шаге отключите опции Compound document support и ActiveX controls, если они не требуются – они увеличивают сложность проекта. В разделе User Interface Features выберите только необходимые компоненты, например Ribbon или Toolbar, чтобы избежать избыточности.
Отключите поддержку MFC в виде статической библиотеки, если планируется распространение через установщик – это уменьшит размер исполняемого файла. Для учебных или автономных решений можно включить статическую компоновку, чтобы не зависеть от внешних DLL.
Выберите язык программирования C++, убедитесь, что активна платформа Windows SDK (не ниже 10.0.18362.0), и проверьте, чтобы платформа сборки соответствовала целевому окружению (x86 или x64).
После завершения настройки мастер создаст структуру проекта, готовую к компиляции и отладке.
Настройка среды разработки для работы с MFC
Откройте Visual Studio 2019 и перейдите в раздел «Установщик Visual Studio» через пункт меню «Справка» → «О программе Visual Studio» → «Установщик». Нажмите «Изменить» рядом с установленной редакцией.
В списке рабочих нагрузок активируйте пункт «Разработка классических приложений на C++». В правой панели установите компоненты: «MFC и Windows XP SDK» и «Поддержка ATL и MFC». Нажмите «Изменить», чтобы завершить установку необходимых пакетов.
После завершения установки откройте Visual Studio, создайте новый проект, выбрав шаблон «Приложение MFC» из категории C++ → Windows Desktop. Убедитесь, что в параметрах конфигурации проекта выбрана платформа x86 или x64 в зависимости от целевой системы.
Перейдите в свойства проекта: ПКМ по проекту → «Свойства». В разделе «C/C++» → «Общие» убедитесь, что путь к заголовочным файлам SDK указан корректно. В разделе «Компоновщик» → «Общие» проверьте путь к библиотекам.
Включите поддержку Unicode, если проект должен использовать современные стандарты Windows API. Это задаётся в «Свойствах» → «Общие» → «Многоцелевой символ» → «Использовать набор символов Unicode».
Сохраните конфигурацию, выполните сборку. Если среда настроена правильно, компиляция пройдёт без ошибок, и шаблонное MFC-приложение будет успешно запущено.
Проверка работоспособности проекта MFC
После создания проекта MFC необходимо убедиться, что он компилируется и запускается без ошибок. Для этого выполните следующие шаги:
- Откройте решение в Visual Studio 2019 и убедитесь, что выбран конфигурационный профиль Debug и платформа x86 или x64 в зависимости от настроек проекта.
- Если возникают ошибки компиляции, проверьте наличие подключенных библиотек MFC и правильность настроек в разделе Project → Properties → Configuration Properties → General.
- После успешной сборки нажмите F5 или используйте пункт Debug → Start Debugging для запуска приложения.
- Убедитесь, что запускается окно приложения MFC (например, диалоговое или SDI/MDI-интерфейс) и элементы интерфейса корректно отображаются и реагируют на действия.
Рекомендуется дополнительно проверить работоспособность следующих компонентов:
- Реакция на команды меню (если используется класс
CMenu
) – они должны вызывать соответствующие обработчики. - Открытие и сохранение файлов – проверьте корректность работы
CFileDialog
, если он реализован.
Для минимизации проблем в дальнейшем активируйте отображение всех предупреждений компиляции: Project → Properties → C/C++ → General → Warning Level → Level4 (/W4) и включите опцию Treat Warnings As Errors.
Решение распространённых ошибок при подключении MFC
Ошибка: LNK2019: unresolved external symbol
Возникает при отсутствии линковки с библиотеками MFC. Убедитесь, что в настройках проекта выбран тип «Use MFC in a Shared DLL» или «Use MFC in a Static Library» в разделе Configuration Properties → Use of MFC. Также проверьте наличие библиотеки afxwin.lib в Linker → Input → Additional Dependencies.
Ошибка: fatal error C1083: Cannot open include file: ‘afxwin.h’
Файл заголовка не найден. Проверьте наличие компонента MFC в установленной версии Visual Studio через Tools → Get Tools and Features. В установщике должна быть активирована опция «C++ MFC for latest v142 build tools». После установки перезапустите среду.
Ошибка: LNK1104: cannot open file ‘mfcsXXXd.lib’
Ошибка возникает при попытке использовать MFC в режиме отладки, когда нужная библиотека отсутствует. Проверьте, соответствует ли выбранный режим сборки (Debug/Release) установленным компонентам. Убедитесь, что версии библиотек соответствуют платформе (x86 или x64) и установленным инструментам сборки (v142 или v143).
Ошибка: MFC classes are undefined
Отсутствуют директивы препроцессора. Убедитесь, что подключены заголовки #include <afxwin.h> и определён класс CWinApp с точкой входа через InitInstance(). Проверьте, что в свойствах проекта выбран шаблон «MFC Application» или корректно настроен консольный проект с ручным подключением MFC.
Ошибка: inconsistent DLL linkage
Ошибка вызвана несовпадением режимов компиляции MFC и других компонентов. Проверьте, что для всех используемых библиотек установлен один и тот же режим: DLL или статическая линковка. В Project Properties → C/C++ → Code Generation параметр Runtime Library должен совпадать по всем модулям (например, Multi-threaded Debug DLL (/MDd) для Debug).
Вопрос-ответ:
Можно ли установить поддержку MFC в уже установленную Visual Studio 2019, или нужно переустанавливать всю среду?
Переустанавливать Visual Studio 2019 не требуется. Поддержка MFC добавляется через установщик компонентов. Для этого нужно запустить «Visual Studio Installer», нажать «Изменить» рядом с нужной версией Visual Studio, затем в разделе «Рабочие нагрузки» выбрать «Разработка классических приложений на C++». В правой части окна отобразятся дополнительные компоненты, среди которых можно найти «Поддержка MFC и ATL». После выбора этого пункта нажмите «Изменить», и нужные библиотеки будут добавлены.
Как создать проект MFC после установки поддержки в Visual Studio 2019?
После добавления MFC в Visual Studio 2019 можно создать новый проект, выбрав пункт «Создать проект». В окне выбора шаблонов введите в поиске «MFC» и выберите один из шаблонов: например, «Приложение MFC» или «Библиотека MFC». После выбора шаблона мастер предложит настроить стиль приложения (SDI, MDI или диалоговое окно), включение поддержки для Unicode, использование библиотеки как динамической или статической. Настройте параметры в соответствии с задачами проекта, после чего Visual Studio сгенерирует готовый каркас приложения.
Поддерживает ли Visual Studio 2019 статическую компоновку MFC, и где это указывается?
Да, поддержка статической компоновки MFC доступна. При создании нового проекта через мастер MFC можно выбрать способ подключения библиотеки — динамически (через DLL) или статически (включение всех нужных библиотек в итоговый исполняемый файл). Этот параметр задаётся на одном из шагов мастера. Если вы хотите изменить этот способ позже, откройте свойства проекта, перейдите во вкладку «С/С++» → «Код генерации», и установите «Runtime Library» на `/MT` или `/MTd` (для отладки). Затем во вкладке «Компоновщик» → «Ввод» проверьте, что подключаются нужные статические библиотеки MFC, например `libcmtd.lib` и `mfcs140d.lib` (для отладочной сборки).