Я пишу проект на С++ с SDL2 в 64-разрядной Windows 10 с помощью Visual Studio 2015. Недавно я купил новый ноутбук под управлением Windows 10 и клонировал свой проект из github. Мой проект правильно компилируется, но при запуске я получаю следующую ошибку:
Приложение не смогло начать правильно (0xc000007b). Нажмите "ОК", чтобы закрыть приложение.
Основываясь на моих исследованиях до сих пор, эта ошибка обычно вызвана загрузкой несовместимой DLL, например. 64-битная версия вместо 32-разрядной. Предложения, которые я нашел до сих пор, включают:
- Проверка того, что я использую 32-разрядные версии DLL файлов SDL2
- Установка/переустановка x86-версии распространяемого Visual С++ для Visual Studio 2015
- Использование Уклонение зависимостей для устранения неполадок, из-за которого происходит сбой DLL
Мой проект настроен для сборки для Win32, и я гарантировал, что я использую 32-разрядные версии всех DLL, с которыми я напрямую связываюсь (libfreetype-6, libpng16-16, SDL2, SDL2_image, SDL2_mixer, и SDL2_ttf). Я подтвердил, что x86 VС++ Redistributable установлен на моей машине.
Наконец, я попытался использовать Dependency Walker, чтобы определить, какая DLL может вызвать проблему (хотя я читал оговорки, что Dependency Walker имеет много ложных срабатываний). Это были результаты:
Статический анализ зависимостей Уолкера
Результаты профилирования зависимостей Уокер
После этого профайлер зависает и никогда не продолжает. Обратите внимание, что компоненты SDL и среда выполнения VC загружаются без ошибок.
Программа компилируется и загружается правильно на моих двух старых компьютерах, одна из которых работает с 32-разрядной Windows 7 и одна работает под 64-разрядной Windows 10.
Теперь для актуального вопроса. Какие еще шаги я могу предпринять для отладки этого сбоя? Или кто-нибудь видит из информации, которую я представил, что я делаю неправильно?
Похожие вопросы:
- Приложение не смогло начать правильно (0xc000007b)
- Win 7, 64 бит, проблемы с dll
- Использование SDL_image в Visual Studio 2010 с ошибкой" приложение не смогло правильно запустить 0xc000007b "
Изменить:
Как предложил rflobao, я использовал 64-разрядную версию Dependency Walker на 32-разрядной версии exe. Вот новый вывод моего профайлинга:
В этот момент, как и прежде, Dependency Walker замерзает. Я все еще полностью потерян и не чувствую, что я ближе к тому, чтобы определить, что вызывает проблему.