У меня есть проект с несколькими значками, растровыми изображениями и строками, встроенными в DLL ресурсов в целях MUI. Все они отлично работают в Windows 7, но в XP работают только строки и растровые изображения. Я создаю приложение в Windows 7 с помощью VS2012, используя Visual Studio 2010 (v100) в качестве реального набора инструментов.Как совместно использовать DLL-ресурс, содержащий значки между Windows 7 и XP?
Поскольку MUI не поддерживается на основе XP, я программно получаю дескриптор соответствующей DLL ресурса на основе шагов 5.1c и 5.2 из this article on MSDN.
Результат GetLastError после того, как я попробую LoadImage для моего значка с моего ресурса на XP равен 1813, или ERROR_RESOURCE_TYPE_NOT_FOUND. Вызов LoadImage для растрового изображения или LoadString на одном и том же дескрипторе ресурса работает правильно, и действительно, мои строки и растровые изображения отображаются там, где это необходимо.
Что-то, что я заметил: если я попытаюсь установить значок для ярлыка, открыв DLL для своей прикладной программы, у Windows 7 нет проблем, но Windows XP сообщает, что файл не содержит значков. У XP нет проблем с загрузкой самих файлов ico, если я их скопирую, поэтому я не думаю, что они находятся в плохом формате, если только компилятор ресурсов каким-то образом их калечит. Если я посмотрю на значок в редакторе ресурсов, он выглядит как 32-разрядный BMP-файл 16x16, как и следовало ожидать.
Спасибо за сообщение объяснения. – arx