В чем заключалась идея RunDLL?

Для чего был задуман RunDLL, а затем и RunDLL32? Какова цель их существования? Чтобы обойти диспетчер задач?

https://support.microsoft.com/en-us/kb/164787

В статье говорится, что RunDLL по-прежнему требует определенного заголовка метода для потенциальной точки входа:

16-битная DLL:

  void FAR PASCAL __loadds
  EntryPoint(HWND hwnd, HINSTANCE hinst, LPSTR lpszCmdLine, int nCmdShow);

32-битная DLL:

  void CALLBACK
  EntryPoint(HWND hwnd, HINSTANCE hinst, LPSTR lpszCmdLine, int nCmdShow);

Какова цель использования точки входа RunDLL, а не основной точки входа, как в обычном исполняемом файле?


person MathuSum Mut    schedule 22.01.2016    source источник
comment
Весь смысл в том, чтобы запустить DLL без соответствующего EXE-файла.   -  person Carey Gregory    schedule 22.01.2016
comment
Почему бы не переименовать сборку в *.exe? Нет необходимости иметь соответствующий файл .exe.   -  person MathuSum Mut    schedule 22.01.2016
comment
Хм? Вы не можете просто переименовать DLL и сделать так, чтобы она действовала как приложение.   -  person Carey Gregory    schedule 22.01.2016
comment
Если у него есть основная точка входа, то да.   -  person MathuSum Mut    schedule 22.01.2016
comment
DLL — это библиотека, а не приложение. Вся цель DLL состоит в том, чтобы служить набором функций, которые могут использоваться несколькими приложениями. Если вы дадите ему точку входа main, у вас больше не будет библиотеки.   -  person Carey Gregory    schedule 22.01.2016
comment
Но если у вас есть RunDLL, вызывающая точку входа, она теряет всю цель быть DLL.   -  person MathuSum Mut    schedule 22.01.2016
comment
Нет. Я предлагаю вам немного больше прочитать о DLL.   -  person Carey Gregory    schedule 22.01.2016
comment
Что вы предлагаете мне узнать о DLL?   -  person MathuSum Mut    schedule 22.01.2016
comment
stackoverflow.com/questions/31237323/   -  person MathuSum Mut    schedule 22.01.2016
comment
Их назначение и использование. Вы видимо путаете их с приложениями. RunDLL был создан просто как инструмент, позволяющий выполнять функции в DLL без необходимости написания приложения для их загрузки и вызова.   -  person Carey Gregory    schedule 22.01.2016
comment
Хорошо, причина, по-видимому, в том, что к функциям в файлах .exe трудно обратиться извне, теперь я понимаю вашу точку зрения.   -  person MathuSum Mut    schedule 22.01.2016
comment
Обратите внимание, что использование rundll32 не рекомендуется. пришел к нам из Windows 95, и единственная причина, по которой он до сих пор существует, — инерция и обратная совместимость. Даже в Windows 95 rundll32 мог существовать только по инерции 16-битной Windows. А что касается того, почему rundll существовал в 16-битной Windows, то он не нуждался в целой куче отдельных исполняемых файлов. В то время каждый байт имел значение.   -  person Harry Johnston    schedule 23.01.2016