我在Windows XP上编写了一个庞大而复杂的C应用程序。现在我在64位Windows 7机器上重新编译。当我运行某些可执行文件时,我收到此错误:
程序无法启动,因为您的计算机缺少MSVCP71.dll。尝试重新安装程序以解决问题。
显然这是一个曾经带有Windows的.dll但现在却没有(尤其是这个 MSDN论坛 和这个 之前的堆栈溢出 题。)
据说我应该从Microsoft Visual C ++生成这个DLL并“从合并模块中提取DLL”。但是,我正在使用gcc,mingw和make,我宁愿避免去Visual Studio。
这个dll有很多副本可以从互联网上未经验证的来源下载,但没有一个可以直接从微软下载。我该怎么办?我需要安装Microsoft Visual C ++吗?用gcc和mingw有没有办法做到这一点?
更新: @Sheng Jiang蒋晟的暗示至关重要。我没有意识到我对MSVCP71.dll的依赖只是出于链接到第三方DLL。我能够识别第三方DLL并找到在该DLL上运行的另一个系统上运行的MSVCP71.dll的副本。现在我可以包含MSVCP711.dll和第三方DLL,一切运行顺利。
没有为此文件发布可下载的可再发行组件。 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版本一起使用。
我没有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 ++ 运行 解决了(Microsoft下载中心 )。
MS Office,Oracle客户端和SQL开发人员都有msvcp71.dll。我在PC上找到了一份副本。无需从不受信任的网站下载。
如果我们从C:\ ORACLE \ product \ 10.2.0 \ Client_4 \ oui \ lib \ win32 \ msvcp71.dll复制文件msvcp71.dll并通过文件夹C:\ winnt \ system32中的文件,它就可以工作。