#pragma comment(lib, "Dbghelp.lib")
#ifndef _WIN32_WINNT // Specifies that the minimum required platform is Windows Vista.
#define _WIN32_WINNT 0x0600 // Change this to the appropriate value to target other versions of Windows.
#endif
#include <stdio.h>
#include <iostream>
#include <tchar.h>
#include <windows.h>
#include <Dbghelp.h>
BOOL CALLBACK EnumerateLoadedModulesProc(PCSTR pModuleName,
ULONG pModuleBase,
ULONG pModuleSize,
PVOID pUserContext)
{
printf(" => Found loaded module %s\n", pModuleName);
return TRUE;
}
int _tmain(int argc, _TCHAR* argv[])
{
HMODULE loadProc;
_TCHAR* procName;
int retVal = FALSE;
if (argc > 1) {
procName = argv[1];
if ((loadProc = LoadLibrary(argv[1]))) {
printf(" => Successfully loaded library %s\n", procName);
// FreeLibrary(loadProc);
// loadProc = (HMODULE)GetCurrentProcess;
if (!EnumerateLoadedModules(loadProc,
(PENUMLOADED_MODULES_CALLBACK)EnumerateLoadedModulesProc,
0)) {
printf(" => Failed to load any modules\n");
}
} else {
printf(" => Failed to load library %s\n", procName);
}
}
if (loadProc) {
// Release loaded library, it's no good to us now.
FreeLibrary(loadProc);
}
return retVal;
}