Перенос класса из MFC в консольное приложение C++. Для создания приложения MFC с помощью /MD[d] (версия CRT dll) требуется

Я пытаюсь перенести определенные функции из приложения на основе MFC. Видимо у меня нет опыта работы с MFC. Интересующий меня класс наследуется от CAsyncSocket. При поиске этого класса в MSDN он указывает, что класс является производным от afxsock.h . Когда я добавил это в свой код консольного приложения, я получил следующее сообщение об ошибке, которое было

Error   1   error C1189: #error :  Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]  d:\program files (x86)\microsoft visual studio 10.0\vc\atlmfc\include\afx.h

Любые предложения о том, как я могу решить эту проблему?


person Rajeshwar    schedule 21.03.2013    source источник


Ответы (1)


Чтобы использовать какие-либо материалы MFC, вам необходимо связать свою программу с MFC. проще всего это сделать через свойства проекта. Откройте свойства вашего проекта и перейдите в «Общие». Выберите там «Использование MFC» либо «использовать MFC в статической библиотеке», либо «использовать MFC в общей dll». Попробуйте пересобрать вашу программу. Возможно, вам придется настроить некоторые другие параметры после этого.

person cha    schedule 21.03.2013
comment
Спасибо, не могли бы вы сказать мне разницу между ними? - person Rajeshwar; 21.03.2013
comment
если вы выберете последнее, вам нужно будет распространять MFC вместе с вашим приложением (через установщик). Если вы выберете первый вариант, размер бинарного файла программы будет больше, но вам не нужно будет распространять с ним какие-либо dll. Он будет работать как есть на любом ПК - person cha; 21.03.2013