какой процесс создает мой процесс DLL? - PullRequest
1 голос
/ 17 октября 2011

Я интегрирую стороннее приложение с моей DLL.DLL создается и уничтожается несколько раз за каждый запуск стороннего программного обеспечения.

Из моей библиотеки DLL мне нужно распознать, является ли она той же третьей стороной или другой, которая создает меня.Есть ли способ узнать, какой процесс стороннего программного обеспечения создает меня?

1 Ответ

2 голосов
/ 17 октября 2011

Если DLL выгружается каждый раз, то, вероятно, ей потребуется какое-то постоянное хранилище между каждым разом, когда она загружается.Если вызывающее приложение не предоставляет эту информацию, то сама DLL должна будет выполнить это.

Одной из возможностей может быть использование именованной совместно используемой памяти .Если он не существует, создайте его, а затем используйте его в качестве «флага», чтобы знать, что он вызывается снова в том же исполнении.Когда процесс завершится, он будет уничтожен.Это, конечно, имеет последствия для безопасности, которые необходимо учитывать.Другой процесс может потенциально создать эту разделяемую память, чтобы заставить вашу DLL «думать», что она снова вызывается во время того же запуска, когда это был фактически первый вызов.

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