msvcp90d.dll缺少msvcr90d.dll

时间:2010-08-03 19:22:06

标签: c++ visual-studio-2008 side-by-side dll

我在一台机器上有一个DLL项目,并用新安装的VS2008将其复制到另一台机器上。该项目构建,但我无法调试它。 Dependecy Walker显示我的DLL看到msvcr90d.dll,但msvcp90d.dll 看不到相同的DLL 。但是如果我在单独的窗口中打开msvcp90d.dll,那么msvcr90d.dll 对于msvcp90d.dll是可见的。这显然是一些SxS问题,但我不知道如何解决它。我尝试了谷歌搜索的几个提议修复:

  • 禁用增量链接,
  • 删除然后包含清单构建
  • 从My Documents \ Visual Studio 2008中删除“设置”文件夹

它们都不起作用。 Debug和Release版本中的情况相同。救命啊!

2 个答案:

答案 0 :(得分:0)

您是否安装了VS 2008 Service Pack?

您确定这是您无法调试的原因吗?你的dll是否使用依赖于C库(msvcr90d.dll)的c ++库(msvcp90d.dll)中的任何内容?如果不需要任何内容​​,则不会链接不必要的代码。

您是否在链接器设置中明确忽略了此库?

答案 1 :(得分:0)

我将最新的项目复制到了解决问题的计算机上,结果证明毕竟没有问题。 Dependancy Walker仍然显示与以前相同的黄色图标,但最新的项目可以调试得很好。问题显然在我的代码中,可能是C#声明和实际DLL实现之间的函数签名不匹配。