900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > DLL文件到底如何打开?(使用系统工具rundll32.exe)

DLL文件到底如何打开?(使用系统工具rundll32.exe)

时间:2019-10-04 06:24:59

相关推荐

DLL文件到底如何打开?(使用系统工具rundll32.exe)

第一篇文章,敬请谅解

这种方法适用于windows系统(本人用的就是),我们使用rundll32来调取文件运行,但是最大的问题是不知道调取函数是什么???相信你也有很多的疑惑(小编以前也曾被困扰)

我们来看这个代码

这是Dev C++生成的DLL项目代码(dllmain.cpp)

/* Replace "dll.h" with the name of your header */#include "dll.h"#include <windows.h>DllClass::DllClass(){}DllClass::~DllClass(){}void DllClass::HelloWorld(){MessageBox(0, "Hello World from DLL!\n","Hi",MB_ICONINFORMATION);}BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved){switch(fdwReason){case DLL_PROCESS_ATTACH:{break;}case DLL_PROCESS_DETACH:{break;}case DLL_THREAD_ATTACH:{break;}case DLL_THREAD_DETACH:{break;}}/* Return TRUE on success, FALSE on failure */return TRUE;}

dll.h(头文件)

#ifndef _DLL_H_#define _DLL_H_#if BUILDING_DLL#define DLLIMPORT __declspec(dllexport)#else#define DLLIMPORT __declspec(dllimport)#endifclass DLLIMPORT DllClass{public:DllClass();virtual ~DllClass();void HelloWorld();};#endif

其他的我就不展示了,为了方便函数运行,我们可以修改dllmain.cpp中helloword,这个函数名是_ZN8DllClass10HelloWorldEv,我们可以看这个工具

那就是函数dll函数名(这个工具可以自己去下载/lucasg/Dependencies/releases/download/v1.11.1/Dependencies_x64_Release.zip)GitHub下载不了的小伙伴可以加 我QQ(3577374896)

但是不同的工具会生成不同的函数,通过这个工具你可以看到你所需要的函数名(名字排序我暂且还在研究中···)

下面说我们的启动器

直接上源码

#include <stdio.h>#include <stdlib.h>int main(){system("rundll32 DLL_Text.dll _ZN8DllClass10HelloWorldEv");//rundll32 + 名字 + 调取函数名(自己体会) return 0;}

其实还是很简单的,调取系统命令,我不做过多的讲解了。

这里还需要注意我们的dll必须与源代码生成的exe在同一目录且名字必须更改“DLL_Text.dll”

否则会没有反应。(_ZN8DllClass10HelloWorldEv这个函数名看你自己想调取哪个就换哪个)

这个DLL启动器我会上传GitHub和CSDN,稍后我会在评论区发布链接

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。