Download demo project - 110 Kb
Download project source files - 134 Kb

Have you ever experienced an error while loading a DLL when you start an application? Invalid DLL version? Entry point @XXXX not found?
If the answer is yes, then this application is for you!
On you LAN, there may be thousands of versions of a DLL! Which version are you using? Which DLL has effectively been loaded by your application? You must check the PATH, the current working directory of your process, etc...
This small application, called "DisplayLoadedModules", connects to a running process, gets the list of DLLs loaded by the process, and displays the following information for every DLL:
- Module File Path (e.g. "C:\WINNT4\System32\WS2_32.dll")
- Module Description (e.g. "Windows Socket 2.0 32-Bit DLL")
- Module File Version (e.g. "4.00")
- Associated Product Name (e.g. "Microsoft(R) Windows NT(TM) Operating System")
- Associated Product Version (e.g. "4.00")
- Module File Size (e.g. "59664 bytes")
- Module Creation Date (e.g. "October 14, 1996 03:38:00")
The application can also save the output to a text file. If your application runs on a machine "A" and not on a machine "B", you can compare (using 'diff' or 'windiff') the output of the program on both machines. If you're experiencing a DLL version problem, you'll figure out very easily...
On Windows NT, the executable uses two additional DLLs/Lib: PSAPI.DLL and PDH.DLL For more on these APIs, please refer to MSDN Platform SDK:
On Windows 98, the executable uses the ToolHelp32 library. For more on this APIs, please refer to MSDN Platform SDK:
Note that you must select the proper WIN32 Configuration to build the executable:
- On Windows 98: select configuration Win32 Windows 98 Debug or Win32 Windows 98 Release
- On Windows NT: select configuration Win32 Windows NT Debug or Win32 Windows NT Release