Я публикую этот вопрос здесь, потому что у меня было много проблем, когда я пытался найти на него ответ - в частности, все ответы на StackOverflow не решали проблему.
Недавно я обновил свой 32-разрядный проект Visual Studio 2010, чтобы он также компилировался для x64. Компиляция работает без проблем, но при попытке запустить приложение вылетает с кодом ошибки 0xc000007b. Обычно это происходит, когда вы забыли обновить включенные библиотеки DLL с 32-разрядной до 64-разрядной и, следовательно, попытались загрузить 32-разрядный код в свое 64-разрядное приложение, но в данном конкретном случае я включаю только те библиотеки DLL, которые поставляются с Windows, поэтому WOW в любом случае должен выбрать правильную версию DLL... теоретически.
ProcMon указывает, что все библиотеки DLL загружаются из C:\Windows\System32, что является правильным местом для 64-разрядных подключаемых модулей. Использование Dependency Walker, как предлагается в этой ветке StackOverflow, не имеет смысла. также помогите, так как он считает, что все библиотеки DLL, на которые ссылаются, являются 32-разрядными, вероятно, потому, что само DW является 32-разрядным приложением, поэтому, когда он запрашивает, например, user32.dll, Windows выберет версию, находящуюся в папке SysWOW64.