应用程序无法启动,因为找不到MSVCP100D.dll,重新安装应用程序可能会工作

时间:2011-01-12 12:04:17

标签: c++ visual-studio visual-studio-2010

我在上面搜索并意识到可能有几个原因,所以我将描述我的情景。

当我的应用程序尝试加载在另一个版本的Visual Studio(2010)中构建的.dll文件时会发生这种情况,如果我在Visual Studio 2008上构建相同的项目,则DLL文件加载得很好......

我不知道它是否重要,但Visual Studio 2010 DLL文件版本是基于Windows 7 x32构建的,而Windows Vista 64位则是Visual Studio 2008的另一面。

3 个答案:

答案 0 :(得分:12)

如果动态链接到MSVC运行时,则需要在将运行应用程序的每台计算机上安装该运行时。

请注意,在这种情况下,您似乎链接到运行时的调试版本,分发与运行时的调试版本链接的应用程序是不正常的。

答案 1 :(得分:7)

如果您不想分发运行时,则可以将Visual Studio中的运行时库选项(属性 - > C / C ++ - >代码生成 - >运行时库)从/ MD切换到/ MT或从/ MDd到/ MTd。

正如其他人所说,如果您要分发此应用程序,则应该动态或静态地链接到Runtime库的Release版本,而不是Debug版本。

答案 2 :(得分:2)

只是一个小小的相关建议:在RELEASE版本中构建和运行时,不要添加任何* 248d.lib文件。

我正在关注不同博客的建议,我不小心添加了* 248d.lib以及 248.lib文件。基本上在链接器输入添加依赖关系,确保您没有* 248d.lib文件(此处248是版本2.4.8)

我花了好几个小时想知道为什么事情在发布模式下没有工作,直到我发现有两个.lib文件副本,一个* 248和其他* 248d。如果在发布模式中包含任何d文件,则会出现DLL问题。