Как DLL может иметь нулевой экспорт?

Я недавно натыкался на DLL, установленный в моей системе, что Зависимость, которую говорит Walker (и любая утилита я попробовал), имеет нулевой экспорт по имени или порядковый, все же файл составляет приблизительно 4 МБ в размере. Я думал, что единственная цель DLL состояла в том, чтобы экспортировать функции для использования другим кодом поэтому, какова будет цель dll без видимого экспорта?

6
задан Bryan Dunphy 30 January 2010 в 03:21
поделиться

2 ответа

Один из способов подумать о DLL в качестве контейнера для функций. Экспорт функции из DLL делает эти функции, видимые абоненты за пределами DLL. Во время экспорта функций из DLL является наиболее распространенным способом обеспечения доступа к ним, многие платформы предоставляют другие способы доступа к функциям, которые не были экспортированы, такие как отражение в .NET Framework и Java, а также (я думаю) loadLibtary / getProcaddress Win32

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

4
ответ дан 17 December 2019 в 00:09
поделиться

Только ресурсы DLL, может быть? Они используются, например, довольно часто в целях локализации.

EDIT: также возможно иметь DLL с кодом, который делает что-то в Dll Main (), чтобы каким-то образом сделать его функциональность доступной. DLL может зарегистрироваться у какого-то глобального диспетчера, например, или создать именованные объекты ядра...

3
ответ дан 17 December 2019 в 00:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: