迁移VC7旧项目到VS2019时报LNK1104找不到ComCtl32.Lib怎么办
VS2019编译VC7旧项目LNK1104错误解决方案
错误原因:旧项目硬编码了VS2003(VC7)的ComCtl32.lib路径,VS2019环境下不存在该路径导致链接失败。
报错信息:
LNK1104 no se puede abrir el archivo '..\..\..\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Lib\ComCtl32.Lib'
按以下步骤操作即可解决:
- 修改平台工具集
打开项目属性页,依次进入「配置属性 → 常规」,将「平台工具集」从原有VC7版本修改为v142(VS2019对应工具集),如需兼容Windows XP系统可选择「v142_xp」后缀的版本。 - 清除硬编码的旧库路径
进入「配置属性 → 链接器 → 常规」,找到「附加库目录」配置项,删除其中指向VS2003 VC7库目录的条目。 - 开启默认库目录继承
在链接器常规设置页,勾选「继承来自父项目或项目默认设置的库目录」选项,VS2019会自动从当前安装的Windows SDK中索引ComCtl32.lib,无需手动添加路径。 - 调整附加依赖项配置(可选)
进入「配置属性 → 链接器 → 输入」,检查「附加依赖项」列表,如果存在带完整路径的硬编码ComCtl32.Lib引用,直接替换为ComCtl32.lib即可,VS会自动匹配对应架构、版本的库文件。 - 重定解决方案目标
右键点击解决方案,选择「重定解决方案目标」,在弹出的窗口中选择当前已安装的Windows SDK版本,确认后重新生成项目即可。
内容的提问来源于stack exchange,提问作者Duefectu
相关产品推荐
相关产品推荐

