函数-模块遍历
/// <summary> /// 模块遍历 /// </summary> /// <param name="dwProcessId">进程PID</param> /// <returns></returns> BOOL EnumProcessModule(DWORD dwProcessId) { MODULEENTRY32 me32 = { 0 }; me32.dwSize = sizeof(MODULEENTRY32); HANDLE hModuleSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwProcessId); // 获取指定进程全部模块的快照 if (INVALID_HANDLE_VALUE == hModuleSnap) { ShowError(L"CreateToolhelp32Snapshot"); return FALSE; } BOOL bRet = ::Module32First(hModuleSnap, &me32);// 获取快照中第一条信息 while (bRet) { printf("[%d]\t", me32.th32ProcessID);// 显示 Process ID printf("[0x%p]\t", me32.modBaseAddr);// 显示 模块加载基址 printf("[%s]\n", me32.szModule);// 显示 模块名称 bRet = ::Module32Next(hModuleSnap, &me32); // 获取快照中下一条信息 } ::CloseHandle(hModuleSnap);// 关闭句柄 return TRUE; }