XP Themes + MFC + DLL
От: bnk СССР http://unmanagedvisio.com/
Дата: 08.11.04 19:48
Оценка:
Здравствуйте.
Вопрос следующий:
Как следует поддерживать XP Themes в DLL (Addin).
DLL использует MFC, и этого не изменить.

Насчет варианта от MS:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/mmc/mmc/upporting_visual_styles_in_mfc_snap_ins.asp
я вкурсе, но постоянно вылезают всякие грабли, типа ImageList_Create() из MFC.

Услышал от умных людей, что можно перекомпилировать MFC с флагом ISOLATION_AWARE_ENABLED,
и далее использовать этот "Custom Build" MFC (как статическую библиотеку).

Попробовал проделать это, но получил ряд ошибок компиляции...
В связи с этим вопрос: перекомпиляция MFC — это хорошо и проблемы компиляции
не должны останавливать настоящих индейцев?

Или как народ решает подобные трудности с поддержкой тем в DLL ...
Re: XP Themes + MFC + DLL
От: Misaw  
Дата: 09.11.04 11:41
Оценка:
насколько я понимаю проблема не в DLL а именно в COM/DLL..
если бы другая прога (Office) грузила твою DLL обычным образом то ресурсы из DLL выглядели бы
как в основной программе...

лечится это так...
в DLL в stdafx.h
#define ISOLATION_AWARE_ENABLED 1 (до всех инклудов)

в ресурсах

2 RT_MANIFEST "res\\<your manifest>.manifest"


для двойки есть свой константа но она определена только для больших WINVER

(в exe вместо 2 1)


"...Услышал от умных людей, что можно перекомпилировать MFC с флагом ISOLATION_AWARE_ENABLED,
и далее использовать этот "Custom Build" MFC (как статическую библиотеку)..."

это ты от глупых людей слышал )
Posted via RSDN NNTP Server 1.9 gamma
Re[2]: XP Themes + MFC + DLL
От: bnk СССР http://unmanagedvisio.com/
Дата: 09.11.04 14:57
Оценка:
Здравствуйте, Misaw.
Спасибо за ответ.

M>насколько я понимаю проблема не в DLL а именно в COM/DLL..

M>если бы другая прога (Office) грузила твою DLL обычным образом то ресурсы из DLL выглядели бы
M>как в основной программе...

Не понял причем тут COM

M>в DLL в stdafx.h

M>#define ISOLATION_AWARE_ENABLED 1 (до всех инклудов)
M>в ресурсах
M>2 RT_MANIFEST "res\\<your manifest>.manifest"

Это само-собой (все это УЖЕ СДЕЛАНО, без этого темы ВООБЩЕ НЕ РАБОТАЮТ)...
Проблема именно с использованием MFC. Поясняю на примере:

// Код не работает:
CImageList il;
il.Create(....)  // Это вызов MFC (скомпилированной без ISOLATION_AWARE_ENABLED)

// Код работает:
CImageList il;
il.Attach(ImageList_Create(....)  // Это вызов API IsolationAwareImageList_Create()

M>"...Услышал от умных людей, что можно перекомпилировать MFC с флагом ISOLATION_AWARE_ENABLED,
M>и далее использовать этот "Custom Build" MFC (как статическую библиотеку)..."

M>это ты от глупых людей слышал )


А вы можете предложить лучший вариант?
Re: XP Themes + MFC + DLL
От: megadoZ  
Дата: 19.05.05 14:01
Оценка:
Получилось что-нибудь сделать?
А то я уже перерыл все форумы, ничего не нашёл ;(
Re[2]: XP Themes + MFC + DLL
От: Аноним  
Дата: 20.05.05 06:32
Оценка:
Здравствуйте, megadoZ, Вы писали:

Z>Получилось что-нибудь сделать?

Z>А то я уже перерыл все форумы, ничего не нашёл ;(

Глухо
С mfc42.dll походу ниче более разумного чем "ручками" не получается сделать...
т.е. ничего более работоспособного чем описано в той статье на MS получить не удалось ....
это работает, просто геморойно...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.