2009-10-12 3 views
1

Можно создать дубликат:
How to programmatically get DLL dependenciesКак узнать, загружена ли данная DLL данным процессом?

В Windows в программе ++ на C, я хочу знать, если данная DLL (я знаю путь) нагружен данного внешнего процесса (я знаю путь exe), используя функции win32. Должно быть возможно рассказать обо всех DLL-файлах, загружаемых процессом, как это делает обработчик процессов.

Фабьен

+4

Разве это не похоже на это? http://stackoverflow.com/questions/450039/how-to-programmatically-get-dll-dependencies – vpram86

+0

450039 говорит о статическом анализе этого вопроса о dyanmic, но ответ на 450039 для обоих случаев. –

ответ

3

Сначала у вас есть идентификатор процесса, который вы ищете. Используйте функцию EnumProcesses, описанную here, чтобы найти нужный вам процесс. Существует красивый example, предоставленный для перечисления всех процессов и их имен, которые вы можете использовать в качестве отправной точки.

В качестве второго шага вы можете перечислить все модули, то есть библиотеки DLL, загружаемые каждым процессом. Используйте функцию EnumProcessModules.

This example делает в основном то, что вы хотите, вам нужно добавить еще код проверки для фильтрации вашего процесса и вашего модуля.

Смежные вопросы