不同Visual Studio版本下msvc110d.dll缺失问题及解决方案咨询
解决VS2019加载旧Allegro5项目时msvc110d.dll缺失的问题
我完全理解你的困扰——这种旧项目依赖运行时库的问题确实头疼,而且直接丢dll确实不是长久之计。好消息是你不需要新建项目,通过修改现有配置就能适配VS2019的MSVC运行时,下面是具体步骤和建议:
一、修改现有项目配置适配VS2019
1. 升级项目工具集
这是最关键的一步,让项目切换到VS2019的编译器和链接器:
- 右键你的项目 → 属性 → 配置属性 → 常规
- 找到「平台工具集」,下拉选择
v142(这是VS2019对应的工具集版本,v140对应VS2015,v141对应VS2017) - 注意要切换到「所有配置」(Debug/Release模式都要修改),别只改单一模式
2. 替换适配VS2019的Allegro5库
你之前使用的Allegro5大概率是用旧版VS编译的,导致它依赖旧的MSVC运行时:
- 去Allegro官网下载对应VS2019的预编译库包,或者自己用VS2019重新编译Allegro5的源码(更推荐,能彻底避免依赖冲突)
- 打开项目属性 → 配置属性 → VC++目录:
- 把「包含目录」换成新Allegro库的头文件路径
- 把「库目录」换成新Allegro库的lib文件路径
- 再到「链接器 → 输入」,把附加依赖项里的旧Allegro库文件名换成新的(比如Debug模式用
allegro-5.x.x-monolith-debug.lib,Release模式用allegro-5.x.x-monolith.lib)
3. 对齐运行时库设置
确保项目的运行时库和Allegro库的编译模式完全一致:
- 右键项目 → 属性 → 配置属性 → C/C++ → 代码生成 → 运行时库
- Debug模式选
多线程调试 DLL (/MDd)(如果你用的是动态链接的Allegro) - Release模式选
多线程 DLL (/MD) - 如果你用的是静态编译的Allegro,就对应选
/MTd(Debug)和/MT(Release)
- Debug模式选
二、如果配置修改无效,再考虑新建项目迁移
如果上述步骤后还是存在问题,再新建VS2019项目迁移内容:
- 复制所有源文件、头文件、资源文件到新项目目录,然后添加到项目中
- 逐行复刻旧项目的关键配置:附加包含目录、库目录、链接器依赖、预处理器定义、编译选项等
- 确保新项目的平台工具集是
v142,运行时库设置和新Allegro库匹配
三、避免未来出现此类问题的建议
- 匹配第三方库的VS版本:始终使用和当前VS版本一致的第三方库预编译包,或者自己用当前VS编译源码,从根源避免运行时依赖不兼容
- 保存项目模板:把调好的平台工具集、运行时库等配置保存为项目模板,以后新建项目直接用模板,不用重复配置
- 用NuGet管理依赖:如果Allegro有官方NuGet包,优先用NuGet安装,它会自动匹配当前VS的工具集和运行时库,减少手动配置的错误
- 定期清理项目:定期删除项目的中间文件(obj目录)和输出目录(bin目录),避免旧版本的库文件残留干扰
内容的提问来源于stack exchange,提问作者harisiad




