none
missing msvcr70d.dll

    Question

  • Hi,

    I uninstalled VS .net 2002 and then installed VS .net 2003. I could successfully build my project in both debug and release modes. But when I try to run in debug mode, I get the following error.

    Unable to load library 'C:\tpapps\Rev4.0.0e2.1\lib_debug\iCOASIS.dll'. Dependency verification failed: File 'MSVCR70D.dll' not found in directories:

    ....list of included directories.

    I searched online for more information about this dll and found that it should be in c:\windows\system32 folder. I am running windows xp and there is no MSVCR70D.dll in c:\WINNT\system32 folder, but I found msvcr70.dll, msvcr71d.dll and MSVCR71.dll in the same folder. I suppose 70 and 71 indicate the VC++ compiler version and D indicates Debug.

     Why is my .net2003 still looking for MSVCR70D.dll? Shouldn't it look for msvcr71D.dll?

    Thanks a lot,
    Kiran.

    Sunday, January 15, 2006 9:20 PM

Answers

  • Hello.

    You need to rebuild iCOASIS.DLL for VC2003.

    Or

    Assuming that iCOASIS.dll has no more bugs, [backup then] delete the debug version of iCOASIS.dll; you only need to use the release version of that dll from now on (ie. you now only need to debug the exe, not the DLL). To make your debug exe reference the release dll, go to Build -> configuration manager, select the iCOASIS project, and change its configuration from Debug to Release.

    btw. msvcr70d.dll is the DLL for the VC2002 debug CRTs. If you want your project to run on a machine without VC2002 (which is what your machine is now), it must be compiled as a Release build.

     

    Sunday, January 15, 2006 10:03 PM
    Moderator

All replies

  • Hello.

    You need to rebuild iCOASIS.DLL for VC2003.

    Or

    Assuming that iCOASIS.dll has no more bugs, [backup then] delete the debug version of iCOASIS.dll; you only need to use the release version of that dll from now on (ie. you now only need to debug the exe, not the DLL). To make your debug exe reference the release dll, go to Build -> configuration manager, select the iCOASIS project, and change its configuration from Debug to Release.

    btw. msvcr70d.dll is the DLL for the VC2002 debug CRTs. If you want your project to run on a machine without VC2002 (which is what your machine is now), it must be compiled as a Release build.

     

    Sunday, January 15, 2006 10:03 PM
    Moderator
  • Hi Kiran!!!

            Was surprised to see your post!!! haha...

            You got it solved yet? TKBH seems to be having the same problem too... =) tata

    KC

    Thursday, February 02, 2006 4:59 AM
  • Are you sure it's exactly the same problem? Note, that it could be looking for any one of:

    • msvcrt.dll
    • msvcr70.dll
    • msvcp60.dll
    • msvcp70d.dll
    • msvci70.dll
    • msvcrtd.dll
    • msvcr71.dll
    • msvcr71d.dll
    • msvcr80.dll

    (all similar sounding, but each is a different problem). It's only the same problem if the DLL is called iCOASIS.dll and it references msvcr70d.dll.

     

    Thursday, February 02, 2006 10:22 AM
    Moderator
  • Hi,

    I am using a third party code(xml parser--xerces) which was built in .net 2002 and hence the dependency on msvcr70d.dll. I am in the process of updating my third party code(built in .net 2003) which should resolve the issue.

    I used a software called dependency walker to find that my code is looking for msvcr70d.dll. It is also looking for msvcr70.dll and msvcr71.dll, etc. But all 71 dlls are present in c:\windows\system32 directory as I am using .net 2003. I also found that msvcr70.dll is being supplied from another directory exclusively, but not msvcr70d.dll.

    Thanks OShah,
    -Kiran.

    Thursday, February 02, 2006 4:20 PM