2013-03-21 5 views
2

Я пытаюсь перенести определенную функциональность из приложения на основе MFC. По-видимому, у меня нет опыта работы с MFC. Класс моего интереса наследуется от CAsyncSocket. Когда вы просматриваете этот класс в MSDN, он утверждает, что класс получен из afxsock.h. Когда я добавил, что в моем коде консольного приложения я получил следующее сообщение об ошибке, которая былаПортирование класса из MFC в консольное приложение C++. Для создания приложения MFC с/MD [d] (версия DLL для CRT) требуется

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 

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

ответ

8

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

+0

Спасибо, что вы можете сказать мне разницу между ними? – Rajeshwar

+0

, если вы выберете последний, вам необходимо будет распространять MFC с вашим приложением (через установщик). Если вы выберете прежний вариант, размер двоичного файла программы будет больше, но вам не нужно будет распространять любые DLL с ним. Он будет работать так же, как на любом ПК – cha