使用rundll32.exe运行dll函数

在Windows系统中,exe文件可以直接执行,但dll文件不能。为方便调试dll文件,文章介绍了如何利用rundll32.exe作为启动器来调用dll中的入口函数。通过创建动态链接库项目,导出一个名为Main的函数,并使用批处理脚本自动查找并运行DLL,实现了双击bat文件来执行dll的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

         windows操作系统下,exe文件双击即可执行,而dll文件则不可以。这样的话在调试dll中函数的时候就会很不方便,所以可以借助于额外的启动器。当然这个启动器可以自己实现,但是使用操作系统自带的rundll32.exe就能满足要求。日常使用的控制面板中的一些功能都是通过rundll32.exe来启动的

下面通过一个DEMO来介绍rundll32.exe的使用方法

首先我们使用vs创建一个动态链接库的项目,然后在主cpp文件中添加一个导出函数Main,

Main函数作为DLL的入口函数

函数的签名形如 

extern "C" _declspec(dllexport) void _stdcall Main(HWND hwnd, HINSTANCE hinst, LPSTR lpszCmdLine, int nCmdShow) 

代码中加入了AttachConsole附加到了命令行的控制台窗口,也可以使用AllocConsole创建一个新的控制台窗口

 在命令行窗口中调用结果如下

 可以看到控制台输出的信息

 可以使用批处理简化操作,实现一个通用的启动器,在DLL文件同目录下创建一个rundll.bat文件,文件内容如下

 该脚本会自动查找同目录下的第一个DLL文件,这样的话,就可以双击rundll.bat文件来运行dll中的入口函数了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天水麒麟姜伯约

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值