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


Автор: bilbobagginz 29.12.2006, 20:30
здраствуйте, виндовз программеры.
мучает меня вопрос: делаеется гуи на mfc.
файлы - иконка, и биэмпишки - внешние. хочется же создать статически собранную програму.
статически - это относительно, т.е. содержимое mfc  дллек - в файле не нужно, но иконки, и т.д. должны быть вшиты. Как это достигается кратчайшим путём ?


спасибо!



Автор: zkv 29.12.2006, 20:42
Цитата(bilbobagginz @  29.12.2006,  20:30 Найти цитируемый пост)
но иконки, и т.д. должны быть вшиты.

будут вшиты по умолчанию, все будет вшито, за исключением хелпа, манифеста и, естественно, сторонних dll'ек. Так что боятся вроде нечего smile   

Автор: bilbobagginz 29.12.2006, 22:47
ок. это вроде бы хорошо.
а если избавиться и от мунифеста .. на кой он нужен ?




Автор: zkv 29.12.2006, 23:14
манифест - нечто для меня, пока, не совсем понятное, без него работать все будет без проблем, я его использовал для поддержки стилей XP. Больше про манифест ничего не скажу, боюсь наврать smile.

Автор: bilbobagginz 30.12.2006, 14:18
почитаем..

Автор: W4FhLF 30.12.2006, 14:32
Манифест действительно нужен для поддержки XP стиля стандартными контролами(если XP стиль включен в системе). Скажу больше, его можно спокойно прилинковать к прочим ресурсам программы, для этого достаточно в файл ресурсов добавить такую строку:

Код

1 24 DISCARDABLE "your_manifest_file.xml"


А в программе перед созданием диалога не забыть вызвать:

Код

InitCommonControls();


Хотя это не всегда нужно, но чтобы уж наверняка...

Добавлено @ 14:34 
http://bobjohnson.nm.ru/inf/xp_style.html

Автор: Любитель 5.1.2007, 22:07
Не совем верно думать, что поддержка XP стилей - цель манифеста, хотя для большинства он больше нихачем и не нужен. Вообще в XP появилась очередная попытка борьбы с DLL Hell. Она заключается в появлении папки WinSxS. В ней находятся папки различных библиотек, название папочек включают архитектуру системы (x86, x64), название (MS рекомендует всобачивать сюды имя фирмы или девелопера), версию и хеш-код сертификата безопасности библиотеки. Для загрузки библиотек из этой папочки используются манифесты. При этом функции DLL обычным образом также пишутся в таблицу экспорта - то есть не на XP (или на XP при отсутствии манифеста) произойдёт загрузка этих DLL обычным способом. XP (и >) будет загружать либы из WinSxS с проверкой компатибилити версий. В манифесте указывается какая версия нам нужна. Если такой нет, но есть обратносовместимая с ней - то будет загружена она.

comctl32.dll 5-ой версии есть в System32. Это либа содержит функции работы (в том числе отрисовки) с основными контролами (как принято называть элементы у правления в винде). 5-ая версия не поддерживает XP-стили. 6-ая версия грузится через манифесты.

Приоритет всегда у файл-манифеста - типа my_program.exe.manifest в папке с программой. Но можно засунуть и в ресурсы.

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