在 Windows 7 中构建的 VC++ 程序不能在 Windows Xp 上运行

Posted

技术标签:

【中文标题】在 Windows 7 中构建的 VC++ 程序不能在 Windows Xp 上运行【英文标题】:VC++ programs build in Windows 7 don't run on Windows Xp 【发布时间】:2011-07-11 19:03:31 【问题描述】:

我在 Windows 7 的 Visual C++ 中创建了一个小的 WIN32 Console Application

当我尝试在 Windows Xp 上运行这个应用程序时,它给了我一个错误提示

此应用程序启动失败 因为没有找到 MSVCR100D.dll。 重新安装应用程序可能会修复 这个问题。

那么我如何静态构建这个应用程序以使其包含 MSVCR100D.dll ?或

我是否必须从 Windows 7 中复制 MSVCR100D.dll 并将其粘贴到 Windows Xp 中的某个位置?

谢谢。

【问题讨论】:

【参考方案1】:

MSVCR100D.dll 不是 Win7 DLL,它是 MSVC2010 DLL。您可以通过在项目属性中(在 C/C++ -> 代码生成下)将 RuntimeLibrary 从 MD(d) 更改为 MT(d) 来使用静态链接。

【讨论】:

你知道在代码生成中需要改变什么吗?是运行时库吗? 您也可以在 WinXP 机器上安装 VC++ 2010 运行时库 (microsoft.com/downloads/en/…),但这仅在您为零售配置构建应用程序时才有帮助(MSVCR100D 中的“D” .dll 表示您正在为调试构建)。不允许将 Microsoft 调试 DLL 分发到其他计算机。 @PhilMY 感谢您的宝贵建议。 :)

以上是关于在 Windows 7 中构建的 VC++ 程序不能在 Windows Xp 上运行的主要内容,如果未能解决你的问题,请参考以下文章

cx_freeze include_msvcr 不捆绑 windows VC2015 运行时

在 Windows 7 中使用 VC++ 和 C# 中的 MemoryMappedFiles 或命名管道进行进程间通信

在 Windows 7 中运行 VS2017 应用程序

是否可以在 cygwin gcc build 中使用在 VC++ 下构建的库?

在VC中获取Windows XP,Windows 7当前登录用户名[关闭]

使用 VC6 构建错误