Как устранить ошибку «HRESULT: 0x8007000B»?
Программисты, занимающиеся разработкой различного программного обеспечения в интегрированной среде разработки Microsoft Visual Studio C++, могут столкнуться с такой неприятностью, как ошибка 0x8007000B. При ее появлении перед пользователями может появиться окошко со следующим текстом:
Была сделана попытка загрузить программу, имеющую неверный формат. (Исключение из HRESULT: 0x8007000B)
Существует невероятно огромный список причин, из-за которых может возникать код ошибки 0x8007000B. Он настолько огромен, что про по нему можно составить с десяток различных статей.
Способ устранения ошибки 0x8007000B
В данной статье мы рассмотрим одну из ситуаций, при которой может возникать код ошибки 0x8007000B. Итак, давайте предположим, что вы занимаетесь разработкой приложения в Visual Studio Express, для нормальной работы которому требуется применение внешней библиотеки динамической компоновки(DLL-файл). Вы проверили свое приложение — оно работает на вашей машине.
Далее вы предприняли попытку запустить данное приложение на компьютере другого пользователя либо на своей иной машине, которая работает на 64-битной операционной системе. Однако, при запуске перед вами появилось неприятное сообщение «Была сделана попытка загрузить программу, имеющую неверный формат. (Исключение из HRESULT: 0x8007000B)».
В данной ситуации, скорее всего, вы увидели ошибку HRESULT: 0x8007000B из-за того, что внешняя динамическая библиотека, к функциям в которой выполняется обращение, была скомпилирована, чтобы работать под 32-битными операционными системами. Если во время компиляции вы не не укажете целевую платформу, то приложение будет нацелено на работу под 32-битной либо под 64-битную операционной системой. Соответственно, 64-битное приложение сможет работать только с 64-битными DLL.
Чтобы избавиться от ошибки 0x8007000B, вам нужно вернуться в настройки проекта, после чего поменять целевую платформу на «x86». Вероятно, ранее у вас там была выбрана настройка «Любой ЦП», что и привело к компиляции x64 приложения. Как только вы перекомпилируете приложение, оно спокойно сможет работать на любом ПК в 32-битном режиме, а также у него появится возможность производить обращения к нужной вам 32-битной динамической библиотеке. После этого ошибка к кодом 0x8007000B будет устранена.