编码新手,而我在使用c ++控制台应用程序时,突然间我无法打开该应用程序进行调试。它只是弹出并显示“应用程序无法正确启动(0xc0000142)”。 Visual Studio上也没有错误/警告代码。花了最后一个小时来尝试我在论坛等上阅读的各种不同解决方案。完全更新的Windows,更新的nvidia驱动程序,regedit中的值更改,检查的防火墙等。我能想到的唯一剩下的就是运行sfc并可能必须重新安装Windows(我不想这样做)。关闭弹出窗口后,在Visual Studio的输出中,它表明这是由于“ DLL初始化”失败所致。
'tetris.exe' (Win32): Loaded 'C:\Windows\System32\ntdll.dll'. Symbols loaded.
'tetris.exe' (Win32): Loaded 'C:\Windows\System32\kernel32.dll'. Symbols loaded.
'tetris.exe' (Win32): Loaded 'C:\Windows\System32\KernelBase.dll'. Symbols loaded.
'tetris.exe' (Win32): Unloaded 'C:\Windows\System32\KernelBase.dll'
'tetris.exe' (Win32): Unloaded 'C:\Windows\System32\kernel32.dll'
The thread 0x3678 has exited with code -1073741502 (0xc0000142).
The program '[7708] tetris.exe' has exited with code -1073741502 (0xc0000142) 'DLL Initialization Failed'.
它显示我的应用程序已成功加载kernal32.dll和KernalBase.dll,但是ntdll.dll正在加载,但未显示其已卸载。虽然不是完全确定是否相关。非常感谢您的帮助!
[错误0xC0000142
为STATUS_DLL_INIT_FAILED
,这可能是由于缺少依赖项DLL或缺少依赖项中的函数导出(例如,由于具有意外的DLL版本而未导出预期的函数)。
eventvwr.exe
)中是否有任何加载程序消息,这些消息可能会告诉您缺少或加载失败的依赖项。DLL
的路径,并且进程名称与EXE文件名匹配,以查看正在加载或尝试加载的DLL文件,并查找最后的NAME NOT FOUND
链不是] >以SUCCESS
结尾。