The DLL menu demonstrates the capability of Memory Validator to detect dynamic loading and unloading of DLLs via one of the following Win32 calls:
•LoadLibrary()
•LoadLibraryEx()
•FreeLibrary()
These four DLLs can each be loaded and unloaded and each has a test function in it, for example:
DLL1 submenu ...
•Load DLL load the DLL
•Unload DLL unload the DLL
•Test DLL call the supplied test function in the DLL
The test function performs some memory allocation functions, which may result in memory leaks.
See the CTeststakView class methods: OnDllLoaddll1(), OnDllUnloaddll1(), OnDllTestdll1(), etc
The next three options load and unload DLLs having dependent DLLs which should also be loaded:
•Load Dependent DLLs (using LoadLibrary) loads dllADependentOnB.dll
This is dependent on dllBDependentOnC.dll which, in turn, is dependent on dllC.dll
•Load Dependent DLLs (using LoadLibrary via GetProcAddress) Similar to the above, but different methods
•Unload Dependent DLLs frees the library if loaded
See the CTeststakView class methods: OnDllLoaddependentdlls(), OnDllLoaddependentdlls_LLGPA() and OnDllUnloaddependentdlls().