无法在现代 Windows 上启动 Visual Studio 2008 dll
Posted
技术标签:
【中文标题】无法在现代 Windows 上启动 Visual Studio 2008 dll【英文标题】:Unable to launch Visual Studio 2008 dll on Modern Windows 【发布时间】:2020-01-23 12:22:17 【问题描述】:我有一个由 Visual Studio 2008 构建的 dll,我想在 Visual Studio 2019 构建的应用程序中使用它。但是当我将 DLL 链接到我的应用程序时,由于旧的 dll 需要文件,我无法启动应用程序msvcp80.dll 和 msvcr80.dll。我的 Windows 上有很多 Visual Studio 运行时,但无论如何这个 dll 无法加载。 问题可能是这个旧的 dll 有一个外部清单文件,它不适合/对应于我的现代 Windows Server。 有什么方法可以让这个旧的 dll 工作吗? PS:我没有这个dll的源代码。 清单是:
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
<dependency>
<dependentAssembly>
<assemblyIdentity type='win32' name='Microsoft.VC80.CRT' version='8.0.50727.4053' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
</dependentAssembly>
【问题讨论】:
【参考方案1】:为了在 Visual Studio 2008 中运行使用 C/C++ 编译器构建的可执行文件(包括 DLL)(在未安装 VS-2008 的机器上),您需要安装 VC-2008 Redistributable 软件包。
这是免费的,无需许可证即可随您的应用程序一起分发,并安装您的 PC 缺少的所需运行时库。
安装程序可以从here下载和/或安装。
编辑:根据 Hans Passant 发表的评论,您实际上需要的是 VC-2005 Redistributable 以安装 msvcr80.dll
和类似的 RT 库(版本号可以是令人困惑)。
【讨论】:
OP 给了你不好的信息,他需要 VS2005 的 redist。 VS2002 == VC70, VS2003 == VC71, VS2005 == VC80, VC2008 == VC90。 感谢@Hans 提供的重要信息!我在答案中添加了“合适的注释”。 你好,我错了,这个dll是由visual studio 2005构建的。不是2008。我已经安装了vcredist_x86.EXE但它没有帮助,MSVCP80.DLL和MSVCR80.DLL还在必需的。是否有可能我的 dll 是由 VS 2005 SP2、SP3 等构建的? 在C:\的Windows \ WinSxS文件我有以下: - amd64_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.8428_none_88dcdb0b2fb19957 - x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.6195_none_d09154e044272b9a - x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727。 8428_none_d08a11e2442dc25d @sluge 也许你有不同的平台? x64(甚至 IA64)?如果是这样,您需要为 that 平台安装可再发行组件 - 例如 vcredist_x64.exe。或者检查 C:\Windows\System 中的 DLL 文件 - 如果它们不存在,请在 PC 上的其他位置查找它们并将它们复制到那里。以上是关于无法在现代 Windows 上启动 Visual Studio 2008 dll的主要内容,如果未能解决你的问题,请参考以下文章
Xamarin - Android - Visual Studio - 应用程序无法启动
无法从 Visual Studio 启动 gdb 以在 Windows 上的 Linux 子系统中远程调试 Linux C++ 项目
OpenCV 程序无法启动,因为 Visual Studio 2010 中缺少 MSVCP110D.dll
我的电脑win10的 下载后启动visual c++ 6.0 出现 0xc0000142无法正常启动怎么办