EDN Admin
Well-known member
I am attempting to create an application using a DLL created by the Matlab Compiler Runtime. The main DLL of the Matlab Compiler runtime is mclmcrrt710.dll which was apparently built with Visual C++ 2005. When trying to run my application, the
DLL fails to load. When using Dependency walker to debug the problem, I saw some strange results. mclmcrrt710.dll directly depends on MSVCR80.DLL and MSVCP80.dll, and they both load successfully from the proper SxS directory, however MSVCP80.dll
has a dependency on MSVCR80.dll that is unsatisfied. This is very surprising to me, I don;t understand how the DLL could load once successfully and then fail all within the same process.
Using Procmon.exe, I see the DLL loaded successfully from the SxS directory, but later in the log I see failed attempts to load it (Operation:QueryOpen, Result:NAME NOT FOUND) from the current directory and each directory in %PATH% with no attempts
to get it from the SxS directory (where it resides, and thus would be successful).
Adding MSVCR80.dll somewhere in the path allows the program to load; but, as expected, generates a R034 runtime error for loading the DLL without a manifest.
I have tried the following, which did not solve the issue:
Uninstalling all VC2005 runtimes and reinstalling Adding manifests calling out the VC80 CRT to everything in the chain (my exe, my dll, and mclmcrrt710.dll)
Modifying the SxS policy files to force it to load a different version of the CRT
A screenshot of Dependency Walker showing the unexpected behavior:<img src="http://social.microsoft.com/Forums/getfile/278/" alt="
View the full article
DLL fails to load. When using Dependency walker to debug the problem, I saw some strange results. mclmcrrt710.dll directly depends on MSVCR80.DLL and MSVCP80.dll, and they both load successfully from the proper SxS directory, however MSVCP80.dll
has a dependency on MSVCR80.dll that is unsatisfied. This is very surprising to me, I don;t understand how the DLL could load once successfully and then fail all within the same process.
Using Procmon.exe, I see the DLL loaded successfully from the SxS directory, but later in the log I see failed attempts to load it (Operation:QueryOpen, Result:NAME NOT FOUND) from the current directory and each directory in %PATH% with no attempts
to get it from the SxS directory (where it resides, and thus would be successful).
Adding MSVCR80.dll somewhere in the path allows the program to load; but, as expected, generates a R034 runtime error for loading the DLL without a manifest.
I have tried the following, which did not solve the issue:
Uninstalling all VC2005 runtimes and reinstalling Adding manifests calling out the VC80 CRT to everything in the chain (my exe, my dll, and mclmcrrt710.dll)
Modifying the SxS policy files to force it to load a different version of the CRT
A screenshot of Dependency Walker showing the unexpected behavior:<img src="http://social.microsoft.com/Forums/getfile/278/" alt="
View the full article