【问题标题】:.exe gives error MSVCP120.dll is missing for Win7x64.exe 给出错误 MSVCP120.dll is missing for Win7x64
【发布时间】:2014-09-03 19:14:09
【问题描述】:

我使用 VS2013 创建了 .exe,并通过提供注册表路径将其直接添加到控制面板。我为 x64 构建了它。它在 Win8.1x64 上运行得非常好。但是当我在 Win7x64 上启动它时,它会给出 MSVCP120.dll 错误。如果我复制 dll 它可以工作。但是dll是否直接连接到.exe?如果不是,我该如何附加它们?

【问题讨论】:

    标签: visual-studio dll linker visual-studio-2013


    【解决方案1】:

    您的错误只是意味着 Windows 7 计算机中缺少 VS2013 的 MSVC 可再发行组件。 Windows 7 默认没有这个 DLL。

    但是,请不要随意复制 DLL。您需要确保可再发行组件作为安装程序的一部分安装或由用户单独安装。例如,您可以让安装程序检测可再发行组件的存在与否,并提醒用户安装它。您可以将其包含在您的安装包中,这是允许的。

    请注意,可再发行组件有 2 个版本,用于 x86 和 x64。您需要为您的应用程序提供正确的。您可以使用this link 下载适用于 Visual Studio 2013 的 Visual C++ 可再发行包。

    【讨论】:

    • 是的,我有 x64,但我想弄清楚如何通过 Visual Studio 2013 将它们添加到应用程序
    • 您可以动态链接到需要在安装计算机上安装可再发行组件的 DLL,也可以将其静态链接到可执行文件中。静态链接会增加可执行文件的大小,但这意味着您不依赖于在程序运行之前安装的可再发行组件。做什么和如何做取决于你。
    • 我认为静态链接是最好的选择...我只是在链接器中添加 .dll 吗?
    • 这是您可以在解决方案设置中选择的选项。 This SO question 就 Visual Studio 中的静态/动态链接进行了有趣的讨论。
    • 如果程序无法访问 Windows GUI(因为它是由另一个程序在“后台”运行的)它不会打印任何错误消息。相反,退出代码是 -1073741515。见stackoverflow.com/a/3360923/2950621
    【解决方案2】:

    即使您使用的是 x64,也需要安装 x86 版本的 MSVC 可再发行组件。

    我自己也遇到过这个问题。我发现即使在安装 x64 版本的 MSVC 可再发行组件后,SysWOW64 目录中也缺少 msvcp120.dll 文件。安装 x86 版本后问题已解决。

    【讨论】:

    • 对我来说这是个问题。谢谢!
    • Thx,这非常有用,因为在其他答案中只是说“再次安装 MSVC”,但不要像大多数现代计算机一样指定是针对 x86 还是 x64
    • 对我来说,我必须最后安装 x86,然后它才能工作。
    猜你喜欢
    • 1970-01-01
    • 2012-09-29
    • 1970-01-01
    • 1970-01-01
    • 2022-11-28
    • 2014-05-28
    • 1970-01-01
    • 2017-12-18
    相关资源
    最近更新 更多