Visual C++: Problem with dependent DLLs

EDN Admin

Well-known member
Joined
Aug 7, 2010
Messages
12,794
Location
In the Machine
Hello,
I compiled a custom DLL project using Visual Studio 2008 in C++. The compilation goes well and completes with no error. However, when I use Depends (dependencies walker), I see some dependencies problems:
Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module.
Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.

There are no *missing* DLL but four of them are listed in red:
c:windowssystem32GDI32.DLL
c:windowssystem32KERNEL32.DLL
c:windowssystem32NTDLL.DLL
c:windowssystem32USER32.DLL
and also set of seven libraries that are delay-loaded are also shown in red:c:windowssystem32ADVAPI32.DLL
c:windowssystem32DUSER.DLL
c:windowssystem32MPR.DLL
c:windowssystem32MSVCRT.DLL
c:windowssystem32RPCRT4.DLL
c:windowssystem32SHELL32.DLL
c:windowssystem32UXTHEME.DLL



That makes me suspects that these DLLs may not be the right version but I am not sure. I had this project compiled and run fine on another computer until I had to change PC because of a major crash.
Here are a few questions (sorry for the very basic questions, I am not a guru when it comes to dependencies on Windows, always frustrating)
1- Why can I compile fine but not run on the same computer? Isnt the compiler validating that all symbols can be found before ending the compilation with 0 errors.
2- Why do I have DLL showed in red in Depends? I mean the library is there but does not contain the right symbols? Does it seems to be a problem of library version as I suspect ?
3- Is there a tool in windows to install automatically and recursively, from the web, all dependent libraries with the right version so that everyone is happy ( similar to "yum" in Centos) ? If not, how does one fix that kind of problem? Any way to tell which version of dependencies a DLL expects (it is obviously not enough to GDI32.dll on your PC, you must have the *right* one, but which one and how to fix the dependencies of GDI32.dll itself if I decide to install another version -- this seems like a endless problem).
Any other suggestions to fix this kind of problems?
Thanks in advance!
Johnny

View the full article
 
Back
Top