小结
最近碰到了Windows应用不能正常启动 (The application was unable to start correctly (0xc000007b))的问题,进行了解决。
问题及解决
点击应用后,应用直接不能启动,返回(The application was unable to start correctly (0xc000007b))的对话框。
这里的主要原因是因为应用使用的DLL的版本不对,如下:
- If a 32-bit app tried to load a 64-bit DLL.
- Or if a 64-bit app tried to load a 32-bit DLL.
- Or if a 64-bit app tried to run on a 32-bit Windows.
实际是DLL的32-bit和6-4bit版本不对,
– 尝试使用32-bit应用加载64-bit的DLL
– 或者是使用64-bit应用加载32-bit的DLL
– 或者是在32-bit Windows操作系统中打开64-bit应用。
这里涉及到这几个DLL: msvcp140d.dll,ucrtbased.dll,vcruntime140d.dll,都是debug版本,需要将32-bit DLLs放在’/Windows/SysWOW64′ 目录下,将64-bit DLLs 放在 ‘/Windows/System32’ 目录中,如果不行,再反过来放一次。
参考
Stackoverflow: The application was unable to start correctly (0xc000007b)