C ++, не могу найти загруженную C # DLL при перечислении загруженных модулей - PullRequest
0 голосов
/ 12 июля 2011

спасибо, что нашли время, чтобы прочитать это.

Ситуация в основном, я использую EnumProcessModulesEx для перечисления всех модулей в загруженном процессе. Я проверил, что процесс, который я получаю с GetCurrentProcess, является правильным (через идентификатор). Кажется, я получаю все загруженные модули, кроме одного, который я хочу! Это C # DLL, которая загружается только при вызове функции C # DLL. Я удостоверился, что DLL была загружена, прежде чем я запустил функцию перечисления. Есть ли причина, по которой эта C # DLL не будет отображаться?

Я также поместил это перечисление после загрузки нескольких других библиотек C # в мой код C ++. Кажется, они тоже не находят. Все эти C # DLL загружаются динамически. Я полагаю, что это не должно иметь значения, потому что а) все равно отображается в адресном пространстве процесса, и б) у меня есть C ++ DLL, которая вводится (динамически загружается?), И я могу найти, что это прекрасно. Моя цель состоит в том, чтобы иметь возможность подключить функцию C # DLL, поэтому возможность найти эти библиотеки C # DLL является обязательной в этом проекте.

Еще раз спасибо всем за любые советы или идеи! =)

1 Ответ

1 голос
/ 12 июля 2011

EnumProcessModulesEx не будет перечислять .Net DLL.Он перечисляет только собственные DLL.

Вы можете использовать метод GetAssemblies текущего AppDomain для перечисления .Net DLL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...