Windows RunDLL背后的想法是什么?

Windows RunDLL背后的想法是什么?,windows,rundll32,Windows,Rundll32,为什么要构思RunDLL和后来的RunDLL32?他们存在的目的是什么?以便绕过任务管理器 文章指出,RunDLL仍然需要一个特定的方法头作为候选入口点: 16位DLL: void FAR PASCAL __loadds EntryPoint(HWND hwnd, HINSTANCE hinst, LPSTR lpszCmdLine, int nCmdShow); 32位DLL: void CALLBACK EntryPoint(HWND hwnd, HINSTANCE hi

为什么要构思RunDLL和后来的RunDLL32?他们存在的目的是什么?以便绕过任务管理器

文章指出,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入口点而不是常规可执行文件中的主入口点的目的是什么?

整个点都可以在没有匹配的EXE的情况下运行DLL。为什么不将程序集重命名为*.EXE?没有必要有一个匹配的.exe文件。嗯?你不能只是重命名一个DLL并让它充当一个应用程序。如果它有一个主入口点,那么是的。请注意,它基本上来自Windows 95,它仍然存在的唯一原因是惯性和向后兼容性。即使在Windows 95中,rundll32也可能只存在于16位Windows的惯性中。至于为什么rundll存在于16位窗口中,它避免了需要一大堆单独的可执行文件。在那个时代,每一个字节都被计算在内。关键是在没有匹配的EXE的情况下运行DLL。为什么不将程序集重命名为*.EXE?没有必要有一个匹配的.exe文件。嗯?你不能只是重命名一个DLL并让它充当一个应用程序。如果它有一个主入口点,那么是的。请注意,它基本上来自Windows 95,它仍然存在的唯一原因是惯性和向后兼容性。即使在Windows 95中,rundll32也可能只存在于16位Windows的惯性中。至于为什么rundll存在于16位窗口中,它避免了需要一大堆单独的可执行文件。在那个时代,每一个字节都有意义。