How do I detect the DLLs required by an application?

In a nutshell: I want to do the same thing "Dependency Walker" does.

Is there any Win32 API function which can enumerate the dependencies of a EXE and/or DLL file?

And is there any safe way to detect dependencies on ActiveX classes? (I doubt it is possible, but who knows ...)

EDIT: I'm aware of available tools which provide the same core functionality (Dependency Walker, ProcessExplorer, AQTime, ...) but I want to create my own program which dumps a text file containing the required modules.


Solution 1:

The following commands dumps the direct dependencies of some.exe :

dumpbin /imports some.exe

It works on DLLs too.

This won't list dependencies such as plugins loaded at application launch (via LoadLibrary calls). Same for COM dependencies since they work the same way (as far as I know).

If you need to know all the DLLs used by a running program, use ProcessExplorer.

Solution 2:

findstr -i .dll exe.exe | more | findstr -i .dll | more

rem :)