msvcp90d.dll 丢失 msvcr90d.dll
我在一台机器上有一个DLL项目,并将其复制到另一台新安装的VS2008上。该项目已构建,但我无法调试它。 Dependecy Walker 显示我的 DLL 可以看到 msvcr90d.dll,但 msvcp90d.dll 看不到相同的 DLL。但是,如果我在单独的窗口中打开 msvcp90d.dll,则 msvcr90d.dll 对 msvcp90d.dll 可见。这显然是一些 SxS 问题,但我不知道如何解决。我尝试了几个建议的修复,发现谷歌搜索:
- 禁用增量链接,
- 删除然后包含清单构建,
- 从“我的文档\Visual Studio 2008”中删除“设置”文件夹,
但它们都不起作用。调试和发布版本中的情况是相同的。帮助!
I had a DLL project on one machine, and copied it to another with freshly installed VS2008. The project builds, but I cannot debug it. Dependecy Walker shows that my DLL sees msvcr90d.dll, but msvcp90d.dll does not see the same DLL. But if I open msvcp90d.dll in separate window then msvcr90d.dll is visible to msvcp90d.dll. This is obviously some SxS issue, but I don't know how to resolve it. I tried several proposed fixes found googling:
- disable incremental linking,
- remove and then include manifest building
- remove Settings folder from My Documents\Visual Studio 2008
None of them works. The situation is the same in both Debug and Release builds. Help!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您是否安装了 VS 2008 的 Service Pack?
您确定这是无法调试的原因吗?您的 dll 是否使用了 C++ 库 (msvcp90d.dll) 中依赖于 C 库 (msvcr90d.dll) 的任何内容?如果不需要任何东西,它不会链接不必要的代码。
您是否在链接器设置中明确忽略了该库?
Have you installed the Service Pack for VS 2008?
Are you sure this is the reason you can't debug? Does your dll use anything in the c++ library (msvcp90d.dll) that is dependent on the C library (msvcr90d.dll)? If nothing is needed, it won't link unneccesary code.
Have you explicitly ignored this library in your linker settings?
我把最新的项目复制到出现问题的电脑上,结果发现根本没有问题。 Dependency Walker 仍然显示和以前一样的黄色图标,但是最新的项目可以正常调试。问题显然出在我的代码中,可能是 C# 声明和实际 DLL 实现之间的函数签名不匹配。
I copied the latest project to the computer that exibited the problem, and it turns out that there is no issue after all. Dependancy Walker still shows the same yellow icons as before, but the latest project can be debugged just fine. The problem was obviously in my code, possibly function signature mismatch between C# declaration and actual DLL implementation.