我在Windows XP上编写了一个庞大而复杂的C应用程序。现在我在64位Windows 7机器上重新编译。当我运行某些可执行文件时,我收到此错误:
程序无法启动,因为您的计算机缺少MSVCP71.dll。尝试重新安装程序以解决问题。
显然这是一个曾经带有Windows的.dll但现在却没有(特别是请参阅此MSDN forum和此previous stack overflow问题。)
据说我应该从Microsoft Visual C ++生成这个DLL并“从合并模块中提取DLL”。但是,我正在使用gcc,mingw和make,我宁愿避免去Visual Studio。
此dll的许多副本可从互联网上未经验证的来源下载,但无法从Microsoft直接下载。我该怎么办?我需要安装Microsoft Visual C ++吗?用gcc和mingw有没有办法做到这一点?
更新: @Sheng Jiang蒋晟的暗示至关重要。我没有意识到我对MSVCP71.dll的依赖只是出于链接到第三方DLL而产生的。我能够识别第三方DLL并找到在另一个具有该DLL的系统上运行的MSVCP71.dll的副本。现在我可以包含MSVCP711.dll和第三方DLL,一切运行顺利。
答案 0 :(得分:7)
此文件没有可下载的可再发行组件。 CD上仅提供合并模块。程序员应该将这些合并模块嵌入到他们的安装程序中,或者将文件解压缩到他们程序的安装文件夹中。 This file is not intended for System32 as that is a violation of Windows Logo requirement
由于您未使用Visual C ++工具链,因此MS-STL依赖项附带第三方组件,其作者未提供正确的安装程序。但是,虽然您可以从其他产品获取dll,但您需要一个明确授予您再分发权限的产品,以便能够将该文件重新分发给您的客户。此类重新分发权利随Visual C ++ 2003以及InstallShield X和其他安装包创作软件一起提供。
对于evaluate建议您可以从其他依赖于该文件的产品中获取该组件的文件,例如SQL Server 2005,.Net 1.1运行时或其SDK,Crystal Report 10等。请注意版本不匹配。如果该组件需要SP1或更高版本的MSVCP71.dll,则它可能无法与RTM版本一起使用。
答案 1 :(得分:5)
我没有来自Microsoft的链接,但您可以从here下载(链接已修复,现在指向正确的文件)。
现在将其移至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 ++ 运行时解决了这个问题(Microsoft Download Center)。
答案 2 :(得分:1)
MS Office,Oracle客户端和sql开发人员都有msvcp71.dll。我在PC上找到了一份副本。无需从不受信任的网站下载。
答案 3 :(得分:0)
如果我们从C:\ ORACLE \ product \ 10.2.0 \ Client_4 \ oui \ lib \ win32 \ msvcp71.dll复制文件msvcp71.dll并通过文件夹C:\ winnt \ system32中的文件,则它可以正常工作。