2016-05-04 6 views
1

Я построил простой пример MS для TaskDialogIndirect (см https://msdn.microsoft.com/en-us/library/windows/desktop/bb760544(v=vs.85).aspx)вызова TaskDialogIndirect погрузчик говорит порядковые 345 не найден

Когда я запускаю его я получаю «Порядковый 345 не может находиться в динамической библиотеке COMCTL32.DLL»

На этой странице написано, что для нее требуется версия ComCtl32.DLL 6, но C: \ Windows \ System32 \ ComCtl32.DLL - 5.82.7601.18201, и я не могу найти версию 6 в любом месте на диске.

Я запускаю Windows 7 с VS2012. TaskDialog был добавлен в Vista, так почему бы мне не получить правильную версию ComCtl32.DLL ???

+1

https://msdn.microsoft.com/en-us/library/windows/ настольные/bb773175 (v = vs.85) .aspx –

ответ

1

Существует две версии ComCtl32.dll в Windows XP и более поздних версиях (SxS). v5.8x по умолчанию, вам нужно сделать выбор, чтобы получить v6 из-за возможной несовместимости с новыми темами/визуальными стилями. Большинство новых функций и элементов управления были добавлены только в v6.

Чтобы получить v6, вы должны add a manifest к вашему применению. Рекомендуется вставлять манифест в ресурсы приложений, но вы также можете использовать внешний манифест; просто укажите XML-файл yourappname.exe.manifest.

0

Вот общий и полезный блок кода, который должен помочь загрузить правильные общие элементы управления, comctl32.dll:

#if defined _M_IX86 
#pragma comment(linker, "/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"") 
#elif defined _M_IA64 
#pragma comment(linker, "/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"") 
#elif defined _M_X64 
#pragma comment(linker, "/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"") 
#else 
#pragma comment(linker, "/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"") 
#endif