Пренасяне на клас от 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