13

我在 Windows XP 上编写了一个大型而复杂的 C 应用程序。现在我在 64 位 Windows 7 机器上重新编译。当我运行某些可执行文件时,我收到此错误:

程序无法启动,因为您的计算机中缺少 MSVCP71.dll。尝试重新安装程序以解决问题。

显然,这是一个 .dll,过去是 Windows 附带的,但现在没有(特别参见这个MSDN 论坛和这个以前的堆栈溢出问题。)

假设我应该从 Microsoft Visual C++ 生成这个 DLL 并“从合并模块中提取 DLL”。但是,我正在使用 gcc、mingw 和 make,我宁愿避免使用 Visual Studio。

可以从 Internet 上未经验证的来源下载此 dll 的许多副本,但没有一个可直接从 Microsoft 下载。我该怎么办?我需要安装 Microsoft Visual C++ 吗?有没有办法用 gcc 和 mingw 做到这一点?


更新: @Sheng Jiang 蒋晟的提示至关重要。我没有意识到我对 MSVCP71.dll 的依赖只是由于链接到第三方 DLL 而产生的。我能够识别第三方 DLL 并找到运行在具有该 DLL 的另一个系统上的 MSVCP71.dll 的副本。现在我可以将 MSVCP711.dll 与第三方 DLL 一起包含进来,一切运行顺利。

4

4 回答 4

10

此文件没有可下载的可再发行版本。CD 上仅提供合并模块。程序员应该将这些合并模块嵌入到他们的安装程序中,或者将文件提取到他们程序的安装文件夹中。此文件不适用于 System32,因为它违反了 Windows 徽标要求

由于您没有使用 Visual C++ 工具链,MS-STL 依赖项带有第三方组件,其作者没有提供正确的安装程序。虽然您可以从其他产品获取 dll,但是,您需要一个明确授予您重新分发权限的产品,以便能够将文件重新分发给您的客户。此类再分发权利随 Visual C++ 2003 以及可能的 InstallShield X 和其他安装包创作软件提供。

对于评估建议,您可以从其他依赖该文件的产品中获取该组件的文件,例如 SQL Server 2005、.Net 1.1 运行时或其 SDK、Crystal Report 10 等。请注意版本不匹配。如果组件需要 SP1 或更高版本的 MSVCP71.dll,它可能不适用于 RTM 版本。

于 2013-04-04T23:15:13.173 回答
6

我没有来自 Microsoft 的链接,但您可以从这里下载(链接已修复,现在指向正确的文件)。

现在将其移至C:/Windows/SysWOW64 (64 位)C:/Windows/System32 (32 位)

这是另一个可用的下载:http: //www.addictivetips.com/windows-tips/fix-msvcp71-dll-and-msvcr71-dll-missing-error-in-windows-7/

不确定这是否可行,但也许重新安装或更新 MS VC++ Runtime可以解决这个问题(Microsoft 下载中心)。

于 2013-04-04T21:25:04.857 回答
2

MS Office、Oracle 客户端和 sql developer 都有 msvcp71.dll。我已经在我的电脑上找到了一份副本。无需从不受信任的网站下载。

于 2014-01-22T14:33:27.983 回答
0

如果我们从 C:\ORACLE\product\10.2.0\Client_4\oui\lib\win32\msvcp71.dll 复制文件 msvcp71.dll 并将文件粘贴到文件夹 C:\winnt\system32 中,则它可以工作。

于 2013-09-25T14:35:00.267 回答