我在一台机器上有一个DLL项目,并用新安装的VS2008将其复制到另一台机器上。该项目构建,但我无法调试它。 Dependecy Walker显示我的DLL看到msvcr90d.dll,但msvcp90d.dll 看不到相同的DLL 。但是如果我在单独的窗口中打开msvcp90d.dll,那么msvcr90d.dll 对于msvcp90d.dll是可见的。这显然是一些SxS问题,但我不知道如何解决它。我尝试了谷歌搜索的几个提议修复:
它们都不起作用。 Debug和Release版本中的情况相同。救命啊!
答案 0 :(得分:0)
您是否安装了VS 2008 Service Pack?
您确定这是您无法调试的原因吗?你的dll是否使用依赖于C库(msvcr90d.dll)的c ++库(msvcp90d.dll)中的任何内容?如果不需要任何内容,则不会链接不必要的代码。
您是否在链接器设置中明确忽略了此库?
答案 1 :(得分:0)
我将最新的项目复制到了解决问题的计算机上,结果证明毕竟没有问题。 Dependancy Walker仍然显示与以前相同的黄色图标,但最新的项目可以调试得很好。问题显然在我的代码中,可能是C#声明和实际DLL实现之间的函数签名不匹配。