VS2015升级至VS2022后C++ GUI应用启动失败问题排查
问题:VS2022升级C++ GUI应用后启动失败,DLL加载缺失
我们正在将一款基于C++的GUI应用从VS2015升级至VS2022,编译成功但可执行文件无法正常启动。使用VS调试器调试时,程序进入以下函数:
int __cdecl TestStartup() { return WinMainCRTStartup(); }
WinMainCRTStartup本应调用WinMain(),但调试时发现程序在加载一系列DLL阶段中断。对比VS2015与VS2022调试输出中C:\Windows\System32下加载的DLL列表,发现后者缺少大量DLL。已排查多种项目配置,仍未找到具体原因。
VS2015加载的DLL列表
- Ntdll.dll
- kernel32.dll
- KernelBase.dll
- gdi32.dll
- win32u.dll
- gdi32full.dll
- msvcp_win.dll
- ucrtbase.dll
- user32.dll
- advapi32.dll
- msvcrt.dll
- sechost.dll
- bcrypt.dll
- rpcrt4.dll
- shell32.dll
- psapi.dll
- winmm.dll
- wininet.dll
- imm32.dll
- Uxtheme.dll
- Combase.dll
- Kernel.appcore.dll
- Ole32.dll
- Comctl32.dll
- oleaut32.dll
- shlwapi.dll
- bcryptprimitives.dll
- windows.storage.dll
- WinTypes.dll
- SHCore.dll
- cmedit64d.dll
- GdiPlus.dll
- msctf.dll
- TextShaping.dll
- TextInputFramework.dll
- CoreMessaging.dll
- CoreUIComponents.dll
- Cryptbase.dll
- AudioSes.dll
- winmmbase.dll
- MMDevAPI.dll
- avrt.dll
- ksuser.dll
- devobj.dll
- cfgmgr32.dll
- cfgmgr32.dll
- msacm32.dll
- midimap.dll
- clbcatq.dll
- powrprof.dll
- umpdc.dll
- ResourcePolicyClient.dll
VS2022加载的DLL列表
- Ntdll.dll
- kernel32.dll
- KernelBase.dll
- gdi32.dll
- win32u.dll
- gdi32full.dll
- msvcp_win.dll
- ucrtbase.dll
- user32.dll
- advapi32.dll
- msvcrt.dll
- sechost.dll
- bcrypt.dll
- rpcrt4.dll
- shell32.dll
- psapi.dll
- winmm.dll
- wininet.dll
- imm32.dll
内容的提问来源于stack exchange,提问作者Srihari S
相关产品推荐
相关产品推荐

