0

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!

Dialecticus
  • 16,400
  • 7
  • 43
  • 103
  • Sorry, I'm not completely understanding. Your msvcp90d is looking at a different version of msvcr90d than the one that your DLL is? i.e. msvcp90d wants msvcr90d 1.0, but your DLL wants msvcr90d 1.1? – Collin Dauphinee Aug 03 '10 at 19:40
  • When I open my dll in DWalker immediately under my dll I see both msvcp90d.dll and msvcr90d.dll, both from the same SxS folder, but under msvcp90d.dll there's a yellow icon where msvcr90d.dll should be (unexpectedly). BUT when I open that very same msvcp90d.dll in another instance of DWalker then I see msvcr90d.dll underneath it (as it should be). – Dialecticus Aug 03 '10 at 21:22
  • Possible duplicate of [x64 MSVC Debug Runtime is missing from side-by-side repository in VS2008 installation](https://stackoverflow.com/questions/8982996/x64-msvc-debug-runtime-is-missing-from-side-by-side-repository-in-vs2008-install) – ivan_pozdeev Aug 20 '18 at 15:03

2 Answers2

0

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?

Jess
  • 2,991
  • 3
  • 27
  • 40
  • I did install SP1, but that didn't solve the problem. At this time I have more important issues to work on, so my temporary workaround was to switch to another computer for development. My current assumption is that I misiterpreted the problem and that there may be no issue after all, but I will have to verify this in later time. Stay tuned. – Dialecticus Aug 12 '10 at 08:31
0

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.

Dialecticus
  • 16,400
  • 7
  • 43
  • 103
  • You were unclear about what you did to fix the problem, so I have to guess. I guess that you recompiled your project on the problematic machine. Then, if there are different version of CRT installed on these machines, you effectively recompiled your project against whatever version happened to be present on the problematic machine. – ivan_pozdeev Aug 20 '18 at 15:24