Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Visual C++/MFC/WTL > Ошибка при компиляции проекта в VS 2008 |
Автор: AndreySol 4.3.2010, 08:10 |
проект - пример DirectShow фильтра NullInPlace из примеров к DX SDK 1>C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\include\afx.h(24) : fatal 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] и указывает на строку в afx.h #ifdef _DLL #ifndef _AFXDLL #error Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d] ----- сюда #endif #endif |
Автор: Andrey44 4.3.2010, 08:21 |
По моему ты в Win32 проекте пытаешься включить MFC проект, так? |
Автор: Earnest 4.3.2010, 16:28 | ||
AndreySol, тебе же ясно говорят, что нужно сделать:
А причина - несовместимые настройки проекта. Обычно, когда делаешь проект визардом и говоришь, что хочешь использовать shared DLL, дальше визард сам все правильно ставит. Способ использования MFС где-то в районе первой страницы свойств проекта. |
Автор: AndreySol 5.3.2010, 08:09 | ||||
В VC++ 6.0 все прекрасно компилировалось, а в VS 2008 опять какие-то задвиги.
В настройках проекта "Runtime Library" - выбор только "Multi-threaded DLL (/MD)" и "Multi-threaded (/MT)".
где это лучше добавить |
Автор: Andrey44 5.3.2010, 10:00 |
В stdafx.h |
Автор: AndreySol 7.3.2010, 08:40 | ||
Блин, вообще дурдом. При конвертировании проекта в формат новой студии визард че-то напортачил - часть h и cpp файлов пропали. Сделал конвертирование заново, все файлы вроде на месте, зато ошибка при компиляции теперь другая:
и указывает на эту строку в afxv_w32.h |
Автор: Tei4 7.3.2010, 19:54 |
http://forum.sources.ru/index.php?showtopic=173243 только так |
Автор: AndreySol 9.3.2010, 08:14 | ||
Блин, да что это за херня творится ! Решил не дрюкатся с переносом проекта в новую студию, а создать новый проект (фильтр DirectShow) и перенести в него функционал. Все вроде сделал, начал добавлять классы фильтра, ну и для них доступ к BaseClasses из DX SDK (lib'а strmbase.lib). И началось. Часть классов линкер видит, а часть НЕТ ! К примеру CMediaType все прекрасно, а для остального
А ведь все в одной либе содержится и хедер для всех классов один - streams.h Что опять не так ? |
Автор: AndreySol 10.3.2010, 08:25 | ||
Перековырял все настройки студии и проекта, теперь ошибки стали такие:
Было LNK2001, теперь LNK2019 - в чем разница ? |