rundll32.exe的实际用途是什么?

try*_*arn 1 windows dll rundll32

我正在搜索为什么 rundll32.exe 进程在我的系统上运行,当我发现它充当容器以将 dll 作为应用程序/exe 运行时。我无法理解我希望 dll 作为应用程序运行的原因/用例。库不只是为了提供功能支持而不是作为单独的应用程序运行吗?

Mat*_*lia 5

rundll32 并不意味着一般地“运行 dll”(它实际上没有意义,dll 没有单个入口点,而“经典”dll 没有足够的元信息来正确调用任何导出的符号)。

相反,它允许使用符合一些明确定义的规范的 dll 作为具有多个入口点的可执行文件;我认为这个想法要么是允许将具有大量共享代码的多个小型实用程序合并到一个二进制文件中,和/或为主要供其他应用程序使用的库提供额外的“测试”入口点(手动调用)。

rundll 所做的基本上是在内存中加载 dll 并调用指定的函数,并期望它必须具有与 exe 入口点相同的签名。

相关知识库文章中提供更多信息。