使用rundll32.exe运行dll函数

         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中的入口函数了。

猜你喜欢

转载自blog.csdn.net/weixin_38526093/article/details/131009630