Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Visual C++/MFC/WTL > статический экзешник |
Автор: bilbobagginz 29.12.2006, 20:30 |
здраствуйте, виндовз программеры. мучает меня вопрос: делаеется гуи на mfc. файлы - иконка, и биэмпишки - внешние. хочется же создать статически собранную програму. статически - это относительно, т.е. содержимое mfc дллек - в файле не нужно, но иконки, и т.д. должны быть вшиты. Как это достигается кратчайшим путём ? спасибо! |
Автор: zkv 29.12.2006, 20:42 |
будут вшиты по умолчанию, все будет вшито, за исключением хелпа, манифеста и, естественно, сторонних dll'ек. Так что боятся вроде нечего ![]() |
Автор: bilbobagginz 29.12.2006, 22:47 |
ок. это вроде бы хорошо. а если избавиться и от мунифеста .. на кой он нужен ? |
Автор: zkv 29.12.2006, 23:14 |
манифест - нечто для меня, пока, не совсем понятное, без него работать все будет без проблем, я его использовал для поддержки стилей XP. Больше про манифест ничего не скажу, боюсь наврать ![]() |
Автор: bilbobagginz 30.12.2006, 14:18 |
почитаем.. |
Автор: W4FhLF 30.12.2006, 14:32 | ||||
Манифест действительно нужен для поддержки XP стиля стандартными контролами(если XP стиль включен в системе). Скажу больше, его можно спокойно прилинковать к прочим ресурсам программы, для этого достаточно в файл ресурсов добавить такую строку:
А в программе перед созданием диалога не забыть вызвать:
Хотя это не всегда нужно, но чтобы уж наверняка... Добавлено @ 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 в папке с программой. Но можно засунуть и в ресурсы. |