msvcp110.dll,我该如何解决它?

Krz*_*zko 6 c++ visual-studio-2012

我有以下问题:我使用Microsoft Visual Studio 2012,它将msvcp110.dll添加到我的版本.我已经在这里和那里阅读了一些帖子,我知道这是由于我同时使用iostream和string并将其链接到我的程序.我在我的电脑上使用它没有问题,但我想向其他人展示.所以我的问题是,尽管对其他人尽可能无痛,我怎么能绕过这个问题,仍然使用一些基本的标准好东西?我知道其他人可以安装Visual Studio Runtime的东西,但这有点痛苦.

Jon*_*art 9

如果您打算保持应用程序动态链接,则最终用户需要安装Visual C++ Redistributable for Visual Studio 2012.

这是交付应用程序的首选方式,原因如下:

  1. 二进制大小 - 您的应用程序二进制文件将更小,因为库函数未链接.
  2. 安全性 - Windows Update可以更新Microsoft可再发行的DLL.如果在其中一个库中发现漏洞,他们可以修复它,并且所有动态链接的程序立即不再容易受到攻击.
  3. 内存占用 - 如果多个进程都使用相同的DLL,则只需将其加载到(只读)内存中一次.所有进程在内存中共享DLL文本的副本,从而减少了进程的总体内存使用量.

或者,您可以静态链接您的可执行文件.通过在Visual Studio中更改程序的生成选项来执行此操作.

在Visual Studio 2010中,这位于" 配置属性" >" C/C++" > "代码生成" >" 运行时库"下.

在此输入图像描述

默认(/MD/ /MDd)告诉VS链接其运行时DLL.

要静态链接,您要将其更改为其中一个非DLL选项(/MT/ /MTd)确保选择正确的调试/非调试版本(d交换机中的少量).


也可以看看: