我在这里发布这个问题是因为我在尝试找到答案时遇到了很多麻烦 - 特别是 StackOverflow 上的所有答案都没有解决问题。
我最近升级了我的 Visual Studio 2010 32 位项目以编译 x64。编译没有问题,但在尝试启动应用程序时,它会失败,错误代码为 0xc000007b。通常当您忘记将包含的 DLL 从 32 位升级到 64 位并因此尝试在 64 位应用程序中加载 32 位代码时会发生这种情况,但在这种特殊情况下,我只包含 Windows 附带的 DLL,所以无论如何,WOW 应该选择正确的 DLL 版本……理论上。
ProcMon 表示所有 DLL 都是从 C:\Windows\System32 加载的,这是 64 位插件的正确位置。按照StackOverflow 线程中的建议使用 Dependency Walker也无济于事,因为它认为所有引用的 DLL 都是 32 位的,可能是因为 DW 本身是一个 32 位应用程序,所以当它要求例如 user32.dll 时,Windows 会选择 SysWOW64 文件夹中的版本。