информационная безопасность без паники и всерьез подробно о проекте |
||||||||||||||||||||||
|
||||||||||||||||||||||
|
07.04.13 19:08 // оригинал Нда, все-таки эти игры с отменой/возвратом поддержки XP в 2012-й студии не остались без последствий (причем ладно бы только в сторонних библиотеках, но ведь и с родными черт-те что). На первый взгляд все просто - в студии выбрать тулсет v110_xp, для консольной сборки определить _USING_V110_SDK71_ и наслаждаться процессом. Но вот сегодня убил буквально полдня, пытаясь понять, где же в проекте вылез код, дергающий под XP функцию InitializeCriticalSectionEx, которой в местном kernel32.dll просто нет - с понятными последствиями. Поиски дошли до файла atlwinverapi.h, где _AtlInitializeCriticalSectionEx в зависимости от того, определен ли _USING_V110_SDK71_, вызывает либо ту самую InitializeCriticalSectionEx, либо InitializeCriticalSectionAndSpinCount. И совершенно фантастическое ощущение - смотреть, как дебаг-версия заходит в подсвеченную серым ветку, плюя на значение макроса. С причиной более менее понятно - MS не дает отдельную версию ATL, а собранная и используемая в MFC (причем с установленным _ATL_STATIC_LIB_IMPL, тоже любовался проходом по этой серой ветке) не в курсе про заморочки с v110_xp. Но как это обходить - совершенно непонятно, все настройки, до которых можно добраться в своем проекте, на это поведение не влияют по определению. Пришлось смотреть, откуда идет этот вызов. Оказался единственным, но в CImage::CInitGDIPlus::CInitGDIPlus, что несколько напрягло - замаячила перспектива делать для XP версию без GDI+. По счастью все оказалось проще, пришлось избавиться только от ATL::CImage. Тоже дико, но не фатально. Итого могу сказать, что хоть и неплохо, что появился v110_xp, но появился он в роли бедного родственника, далеко не весь код можно перенести без существенных потерь. Когда уж та XP вымрет...
|
авто
венгрия
вырвиглаз
германия
глюки
греция
гуглемап
драйверы
египет
железки
журнализм
империя добра
испания
италия
кино
кипр
клоуны
книги
криворучки
оспорт
португалия
программизм
сайт
софт
стрим
студень
турция
уродцы
фото
франция
цацки
чехия
читалки
android
bq
e51
eeepc
from facebook
hd2
hpc
htc
ipad
iphone
onlime
vista
windows 10
windows 7
windows 8
yota
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|