Visual Studio调试Qt时缺失msvcp140d_app.dll问题求助
解决Debug模式缺失VCRUNTIME140D_APP.dll/MSVCP140D_APP.dll的问题
首先咱们先搞清楚这些带_APP后缀的dll是什么:它们是UWP(Windows通用平台)应用专用的调试版VC++运行库文件,和普通桌面程序用的msvcp140d.dll/vcruntime140d.dll不是一回事,专门给目标平台为UWP的程序使用。
结合你的情况——工作机正常、家用机连Qt示例都出问题,大概率是家用机的VS组件安装不全,或者项目(包括Qt示例的默认配置)不小心指向了UWP平台相关的设置,导致Debug模式下试图加载UWP专用的调试运行库。
排查&解决步骤
1. 检查Visual Studio 2017的安装组件
你家用机的VS很可能没装UWP相关的VC++调试组件。打开VS2017的安装程序,选择“修改”:
- 找到Universal Windows Platform development工作负载,确保它被勾选
- 展开这个工作负载的“可选组件”,确认C++ Universal Windows Platform tools和**VC++ 2017 Runtime for UWP(Debug)**这类组件已安装
这些组件正是提供*_APP.dll调试版的来源,工作机可能在安装时默认勾选了这些,而家用机没选。
2. 修正项目配置(包括Qt示例项目)
即使你选了桌面版Qt,项目配置也可能不小心触发UWP运行库依赖:
- 右键项目→属性→配置属性→常规:
- 确认“Windows SDK版本”和工作机完全一致,且不要选择仅针对UWP的SDK版本(比如如果是桌面程序,选通用的Windows 10 SDK即可,不要选带“UWP”标识的)
- 确认“平台工具集”是
v141(VS2017),且对应的Qt版本是msvc2017_64(桌面版),绝对不要用winrt_x64_msvc2015这类UWP专用的Qt版本——你之前试过改到VS2015但用了winrt版本,这会强制程序依赖UWP运行库
- 检查配置属性→C/C++→常规→附加包含目录和链接器→输入,确保没有错误引用UWP相关的头文件或库路径
3. 验证运行库路径
安装完组件后,你可以在VS的安装目录里找到这些_APP.dll,比如:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\<你的MSVC版本号>\bin\Hostx64\x64\store\debug
调试时VS会自动把这个路径加入程序的搜索路径,所以工作机即使System32里没有这些dll,也能正常加载——家用机因为之前没装组件,这个路径不存在,自然找不到dll。
4. 清理项目缓存
做完以上修改后,清理项目的Debug目录、VS的解决方案缓存(.suo文件),然后重新生成项目,避免旧配置残留影响。
为什么工作机没找到dll却能运行?
这是因为VS调试器在启动程序时,会自动把对应平台的运行库调试目录临时加入进程的环境变量路径中,不需要dll出现在System32或SysWOW64里。家用机因为缺少UWP调试组件,这个路径不存在,VS没法自动加载,所以报错。
内容的提问来源于stack exchange,提问作者mjc449
相关产品推荐
相关产品推荐

