关于如何在Visual Studio 2019中修复Dll初始化错误的任何想法?

问题描述 投票:0回答:1

编码新手,而我在使用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正在加载,但未显示其已卸载。虽然不是完全确定是否相关。非常感谢您的帮助!

c++ dll console-application visual-studio-2019
1个回答
0
投票

[错误0xC0000142STATUS_DLL_INIT_FAILED,这可能是由于缺少依赖项DLL或缺少依赖项中的函数导出(例如,由于具有意外的DLL版本而未导出预期的函数)。

  • 尝试查看事件日志(eventvwr.exe)中是否有任何加载程序消息,这些消息可能会告诉您缺少或加载失败的依赖项。
  • 使用Dependencies工具来分析应用程序的依赖关系链是否缺少任何DLL或导出。
  • 尝试使用GFlags.exe为您的EXE文件名启用“ Loader Snaps”,然后在Visual Studio中检查调试输出,以获取有关哪些DLL无法加载的指示。
  • [尝试使用Process Monitor,将过滤器设置为包含DLL的路径,并且进程名称与EXE文件名匹配,以查看正在加载或尝试加载的DLL文件,并查找最后的NAME NOT FOUND不是] >以SUCCESS结尾。
© www.soinside.com 2019 - 2024. All rights reserved.