Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Как убрать "MFC-участки" из кода программы?


Автор: malor 4.5.2012, 22:56
Есть программа на MFC. И эти её элементы хочется убрать... 
Что в настройках проекта поменять помимо ручной чистки кода?

user posted image

MS VS2008

Автор: Earnest 5.5.2012, 07:26
А не проще проект заново создать, не MFC? А потом файлы туда добавить. Только если программа действительно написана на оболочке MFC, то так просто не отделаешься - там ведь вплоть до WinMain все переделывать нужно.

Автор: malor 5.5.2012, 09:14
Цитата(Earnest @  5.5.2012,  07:26 Найти цитируемый пост)
А не проще проект заново создать, не MFC?

Таким путём поначалу и двигался, взяв интересующий меня участок:
http://forum.vingrad.ru/forum/topic-351350/kw-iaccessible-get-accrole.html

А потом решил, может попробовать MFC ликвидировать...

user posted image

Ещё подключил к проекту файлы `stdafx.h` и `targetver.h`, взятые из обычных Win32-проектов.

Текущий перечень ошибок в Debug-конфигурации:
Цитата
error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) already defined in MSVCRTD.lib(MSVCR90D.dll)    uafxcwd.lib
error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) already defined in MSVCRTD.lib(MSVCR90D.dll)    uafxcwd.lib
error LNK2005: "void __cdecl operator delete[](void *)" (??_V@YAXPAX@Z) already defined in MSVCRTD.lib(MSVCR90D.dll)    uafxcwd.lib
error LNK2001: unresolved external symbol ___wargv    uafxcwd.lib
error LNK2001: unresolved external symbol ___argc    uafxcwd.lib


В `Release` их нет.

*** Добавлено чуть позже***

Нашёл в одном из хэдеров строчку:
#include <afx.h> 
закомментил её и стало компилится.

Автор: Earnest 8.5.2012, 16:27
Precompiled headers никакого отношения к MFC не имеют. Это оптимизация компиляции, зря отключил.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)