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、从哪个目录启动发我即可。

相关推荐
长坡夜行4 小时前
复盘:一个 `continue` 让风控把 13% 持仓当成 0,自动触发了 -15.7% 假熔断
程序员
Solara4 小时前
我重算了 11 天,抓出自己抄错的 1 天:AI 会把"公式"记成"数列"
人工智能·程序员·ai编程
cyf315 小时前
程序员到架构师工作和生活反思
程序员·生活·架构师
Thneonl6 小时前
故意弄坏生产:混沌工程不是乱砸,是实验设计
后端·程序员
Thneonl6 小时前
别上来就 strace:60 秒十条命令看清一台病机
后端·程序员
Sam_Deep_Thinking7 小时前
CountDownLatch实现原理
java·后端·面试·程序员
程序员cxuan21 小时前
腾讯又来一王炸,开源版 WorkBuddy 太夯了!
人工智能·后端·程序员
穆梓兰煊1 天前
WebAssembly AI 推理学习路线图
程序员
穆梓东海1 天前
公司从 400 多人缩减到 100 多人,我开始重新思考程序员的未来
程序员
newerp1 天前
Execution Trace 深入实战:可视化调度与系统停顿分析
后端·程序员·go