0

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

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

它们都不起作用。Debug 和 Release 版本的情况都是一样的。帮助!

4

2 回答 2

0

您是否安装了 VS 2008 的 Service Pack?

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

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

于 2010-08-11T20:20:17.887 回答
0

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

于 2010-08-31T10:57:19.237 回答