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

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

1. 编译层(不是 dll)

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

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


2. 运行层(不只有 dll)

Output 里其实早就有 MetaCore.dllmfc140.dllmsvcr90.dll 等,但仍然 0xc0150002

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

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

MetaCore.dllVC90 编译,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.dllucrtbased.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、从哪个目录启动发我即可。

相关推荐
lnix12 小时前
你的代码 3 年后会被 AI 替代,但 FDE 不会:8 个你看不到的底层原因
程序员·aigc
赚点小钱16 小时前
从零开发 AIDataReport 智能数据报表工具|工程脚手架
程序员
小流苏生18 小时前
“《关于我妈说我又老又丑又穷已经没有女生会看得上我了这件事情》”
程序员
CodeSheep1 天前
稚晖君公司人事大变动,来了!
前端·后端·程序员
潘高2 天前
做一个鸿蒙倒班应用时,我踩过的 4 个“看起来很简单”坑
程序员
程序员cxuan2 天前
Pi + DeepSeek-v4-Flash,这用着也太爽了。
人工智能·后端·程序员
程序员cxuan2 天前
Claude Opus 5 的系统提示词被扒出来了
人工智能·后端·程序员
AskHarries2 天前
为什么产品没人用
程序员
Patrick_Wilson2 天前
代码重构中的蚕食方式是什么
程序员·架构·代码规范
Patrick_Wilson2 天前
你知道 git check 的故事吗
git·程序员·命令行