EDN Admin
Well-known member
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
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