VSC++ xc0150002 是 Visual C++ 运行库缺失导致的?

不完全是「少几个 dll」这么简单,实际是 编译环境 + 运行库 + 清单(manifest)+ 工程配置 几层问题叠在一起。

1. 编译层(不是 dll)

问题 现象
未装 MFC MSB8041、afxwin.h 找不到
工具集 工程原是 v143,已改为 Community 的 v145

这一层和 dll 无关,是 VS 组件和工具链 没配好。


2. 运行层(不只有 dll)

Output 里其实早就有 MetaCore.dll、mfc140.dll、msvcr90.dll 等,但仍然 0xc0150002。

真正缺的是 Side-by-Side 清单文件(不是 dll):

复制代码
Microsoft.VC90.CRT.manifest
Microsoft.VC90.MFC.manifest

MetaCore.dll 用 VC90 编译,Windows 要靠这两个 manifest 才能正确加载 msvcr90.dll / msvcp90.dll。

只有 dll、没有 manifest,就会报 0xc0150002------看起来像 dll 问题,本质是 SxS 配置不完整。


3. 工程/配置层(也容易踩坑)

问题 后果
PostBuild 用了空的 VCToolsRedistDir VC145 运行库没拷进 Output
Debug / Release 共用一个 Output\ 互相覆盖 exe,混用 mfc140.dll / mfc140d.dll
从 VS 按 F5(Debug) 需要 mfc140d.dll、ucrtbased.dll 等 debug 库
只拷 exe、不拷整个目录 缺 MTK dll、manifest、ini

总结

markdown 复制代码
编译不过  →  缺 MFC 组件(VS 安装问题)
启动报错  →  不全是缺 dll
           →  关键是 VC90 manifest + 完整 Output 目录
           →  外加 Debug/Release 别混用

工厂使用建议:

  • 配置:Release | Win32
  • 运行:整个 Output\ 目录(exe + dll + manifest + ini)
  • 启动方式:Ctrl+F5 或直接双击 Output\SN_Writer.exe

这些已写进工程的 PostBuild,以后 Release 重新编译 会自动带上 manifest 和运行库。若你还遇到具体报错,把是 F5 还是 Release、从哪个目录启动发我即可。

相关推荐
如约见6 小时前
技术岗的「本科及以上」,多是软门槛
程序员·学历·技术岗
陈随易8 小时前
AI 运维服务器,安全又可靠的方法
前端·后端·程序员
青衫嵌入式9 小时前
根据 STM32 逐行拆解 FreeRTOS 的任务上下文切换
程序员
LV技术派18 小时前
【成为 AI Native Builder · 02】什么是 AI Native Builder:一个人 + AI,交付完整闭环
前端·程序员·ai编程
深蓝AI1 天前
10 万星投给了记忆:claude-mem 把编码 Agent 的断片压进 SQLite,值不值得装
人工智能·程序员
小贺儿开发1 天前
《流光绘忆》Unity 沉浸式光影互动
科技·unity·ai·程序员·工具·互动·光影
深蓝AI2 天前
一个版本号失守:Claude Code 2.1.313 扩展后门事件,开发者机器如何变成别人的 SSH 入口
安全·程序员
深蓝AI2 天前
Ghostty 1.4 七个月打磨:ASCII 解析快 5.7 倍、终端能放动画,SSH 乱码终结
程序员·开源
Solara2 天前
绿灯连亮 6 天、今天我真写了 4 KB:这盏灯从没看过我写的那一层
人工智能·程序员·ai编程
怕浪猫2 天前
我有个朋友,工作八年,公司从 300 人减到 80 人
面试·程序员