Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка при компиляции проекта в VS 2008 
:(
    Опции темы
AndreySol
Дата 4.3.2010, 08:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 772
Регистрация: 19.6.2004

Репутация: 1
Всего: 1



проект - пример 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
PM MAIL   Вверх
Andrey44
Дата 4.3.2010, 08:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 12
Всего: 26



По моему ты в Win32 проекте пытаешься включить MFC проект, так?


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
Earnest
Дата 4.3.2010, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



AndreySol, тебе же ясно говорят, что нужно сделать:
Цитата

 Please #define _AFXDLL or do not use /MD[d]

А причина - несовместимые настройки проекта. Обычно, когда делаешь проект визардом и говоришь, что хочешь использовать shared DLL, дальше визард сам все правильно ставит. Способ использования MFС где-то в районе первой страницы свойств проекта.


--------------------
...
PM   Вверх
AndreySol
Дата 5.3.2010, 08:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 772
Регистрация: 19.6.2004

Репутация: 1
Всего: 1



В VC++ 6.0 все прекрасно компилировалось, а в VS 2008 опять какие-то задвиги.

Цитата

or do not use /MD[d]

В настройках проекта "Runtime Library" -  выбор только "Multi-threaded DLL (/MD)" и "Multi-threaded (/MT)".

Цитата

#define _AFXDLL

где это лучше добавить
PM MAIL   Вверх
Andrey44
Дата 5.3.2010, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 12
Всего: 26



Цитата(AndreySol @  5.3.2010,  08:09 Найти цитируемый пост)
где это лучше добавить

В stdafx.h


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
AndreySol
Дата 7.3.2010, 08:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 772
Регистрация: 19.6.2004

Репутация: 1
Всего: 1



Блин, вообще дурдом.
При конвертировании проекта в формат новой студии визард че-то напортачил - часть h и cpp файлов пропали. Сделал конвертирование заново, все файлы вроде на месте, зато ошибка при компиляции теперь другая:
Цитата

1>C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\include\afxv_w32.h(67) : fatal error C1189: #error :  MFC requires _WIN32_WINNT to be #defined to 0x0400 or greater

и указывает на эту строку в afxv_w32.h
PM MAIL   Вверх
Tei4
Дата 7.3.2010, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 7.3.2010

Репутация: нет
Всего: нет



PM MAIL   Вверх
AndreySol
Дата 9.3.2010, 08:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 772
Регистрация: 19.6.2004

Репутация: 1
Всего: 1



Блин, да что это за херня творится !
Решил не дрюкатся с переносом проекта в новую студию, а создать новый проект (фильтр DirectShow) и перенести в него функционал.
Все вроде сделал, начал добавлять классы фильтра, ну и для них доступ к BaseClasses из DX SDK (lib'а strmbase.lib). И началось.
Часть классов линкер видит, а часть НЕТ !
К примеру CMediaType все прекрасно, а для остального
Цитата

1>strmbase.lib(dllentry.obj) : error LNK2001: unresolved external symbol "class CFactoryTemplate * g_Templates" (?g_Templates@@3PAVCFactoryTemplate@@A)
1>strmbase.lib(dllentry.obj) : error LNK2001: unresolved external symbol "int g_cTemplates" (?g_cTemplates@@3HA)
error LNK2001: unresolved external symbol "public: virtual long __stdcall CBaseFilter::QueryVendorInfo(wchar_t * *)" (?QueryVendorInfo@CBaseFilter@@UAGJPAPA_W@Z)
.....
.....
и так далее.
А ведь все в одной либе содержится и хедер для всех классов один - streams.h
Что опять не так ? 
PM MAIL   Вверх
AndreySol
Дата 10.3.2010, 08:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 772
Регистрация: 19.6.2004

Репутация: 1
Всего: 1



Перековырял все настройки студии и проекта, теперь ошибки стали такие:
Цитата

error LNK2019: unresolved external symbol "public: __thiscall CTransInPlaceFilter::CTransInPlaceFilter(wchar_t *,struct IUnknown *,struct _GUID const &,long *,bool)" (??0CTransInPlaceFilter@@QAE@PA_WPAUIUnknown@@ABU_GUID@@PAJ_N@Z) referenced in function "private: __thiscall CWSFilter::CWSFilter(wchar_t *,struct IUnknown *,long *)" (??0CWSFilter@@AAE@PA_WPAUIUnknown@@PAJ@Z)
error LNK2019: unresolved external symbol "public: __thiscall CBasePropertyPage::CBasePropertyPage(wchar_t *,struct IUnknown *,int,int)" (??0CBasePropertyPage@@QAE@PA_WPAUIUnknown@@HH@Z) referenced in function "public: __thiscall CWSPropPage::CWSPropPage(struct IUnknown *,long *)" (??0CWSPropPage@@QAE@PAUIUnknown@@PAJ@Z)

Было LNK2001, теперь LNK2019 - в чем разница ?

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0942 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.