Каков принцип LOADDLL.EXE? - PullRequest
       49

Каков принцип LOADDLL.EXE?

0 голосов
/ 18 сентября 2010

Может использоваться для запуска произвольной библиотеки динамических ссылок в Windows,

как он может знать точку входа в произвольную DLL?

Ответы [ 3 ]

1 голос
/ 18 сентября 2010

Ответ зависит от того, сколько деталей вам нужно.По сути, это сводится к следующему:

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

[...] Если вы предоставляете свою собственную точку входа, см.функция DllMain.Имя DllMain является заполнителем для пользовательской функции.Вы должны указать фактическое имя, которое вы используете при создании вашей DLL.

(взято из статьи MSDN Функция точки входа библиотеки Dynamic-Link .)

Таким образом, в основном, точка входа может быть указана внутри DLL, и загрузчик DLL операционной системы знает, как это найти.

0 голосов
/ 18 сентября 2010

Что вы подразумеваете под "запустить DLL"?DLL не являются обычными программами, они просто набор функций.Сама точка входа обычно не делает ничего, кроме инициализации вещей, необходимых для других функций в DLL.Точка входа автоматически вызывается при загрузке DLL (для этого можно использовать LoadLibrary).

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

0 голосов
/ 18 сентября 2010

IMAGE_OPTIONAL_HEADER (часть заголовка переносимого исполняемого файла на машинах Windows) содержит RVA AddressOfEntryPoint, который вызывается программами, которые ищут точку входа для вызова (например, загрузчик).

Более подробную информацию о IMAGE_OPTIONAL_HEADER можно найти здесь . И эта статья хороша только для общих знаний PE.

...