使用Rundll32运行DLL中的函数

标签: , ,

Windows系统中包含名为Rundll32.exe的命令行实用程序,通过这个程序可调用DLL中导出的函数。

但是,使用Rundll32.exe程序并不能调用从任何DLL导出的任何函数。Rundll32只能调用使用以下原型编写 <entrypoint> 函数:

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

Rundll32执行以下步骤:

  1. 它分析命令行。
  2. 它通过 LoadLibrary() 加载指定的 DLL。
  3. 它通过 GetProcAddress() 获取 <entrypoint> 函数的地址。
  4. 它调用 <entrypoint> 函数,并传递作为 <optional arguments> 的命令行尾。
  5. 当 <entrypoint> 函数返回时,Rundll.exe 将卸载 DLL 并退出。

参考链接:http://support.microsoft.com/kb/164787/zh-cn

赞赏

微信赞赏支付宝赞赏

随机文章:

  1. VBS内置常量大全
  2. OpenWrt使用crontab执行计划任务
  3. VBS读取文本文件函数ReadTextFile
  4. OpenWrt配置IPv6之6to4隧道
  5. VBS实现GB2312转Unicode

留下回复