GetModuleHandle 函数示例
来源:互联网 发布:mysql order by 原理 编辑:程序博客网 时间:2024/04/30 16:40
本例通过在一个DLL中实现一个辅助函数 DumpModule ,在辅助函数内调用 GetModuleHandle 函数,GetModuleHandleEx 函数及使用伪变量 __ImageBase,展示了三种方法得到可执行文件或 DLL 在进程虚拟地址空间的实例句柄。
DLL中 DumpModule 函数的实现:
#define DLLWITHGETMODULE extern "C" __declspec(dllexport)
#include "DllwithGetModule.h"
#include <Windows.h>
#include <stdio.h>
#include <tchar.h>
extern "C" const IMAGE_DOS_HEADER __ImageBase; //伪变量,指向当前正在运行的模块的基地址
void DumpModule()
{
//得到当前正在运行的应用程序的基地址
HMODULE hModule = GetModuleHandle(NULL);
_tprintf(TEXT("with GetModuleHandle(NULL) = 0x%x\r\n"),hModule);
//使用伪变量得到当前正在运行模块的基地址
_tprintf(TEXT("with __ImageBase = 0x%x\r\n"),(HINSTANCE)&__ImageBase);
//传入DumpModule函数的地址给GetModuleHandleEx函数,得到DumpModule函数所在模块的基地址
hModule = NULL;
::GetModuleHandleEx(
GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS,
(PCTSTR)DumpModule,
&hModule);
_tprintf(TEXT("with GetModuleHandleEx = 0x%x\r\n"),hModule);
}
另外新建一个Win32 控制台项目,主函数的实现为:
int _tmain()
{
DumpModule();
return 0;
}
运行结果为:
- GetModuleHandle 函数示例
- GetModuleHandle函数
- GetModuleHandle函数
- GetModuleHandle函数
- GetModuleHandle函数
- GetModuleHandle 函数
- GetModuleHandle函数
- GetModuleHandle()函数的含义
- GetModuleHandle
- GetModuleHandle
- GetModuleHandle
- GetModuleHandle
- GetModuleHandle
- 【转发】GetModuleHandle——windows API 函数
- 进程实例句柄和GetModuleHandle函数
- GetModuleHandle函数参数传递方式对其调用方式的影响
- LoadLibrary 和 GetModuleHandle
- GetModuleHandle与GetModuleHandleEx
- Lighttpd1.4.20源码分析之插件系统(2)---插件的加载和初始化
- maven与jetty运行
- android中修改默认语言
- DataTable(ComboBox)第一项添加空值
- 【C# HTTP】HttpWebRequest使用中编码问题
- GetModuleHandle 函数示例
- 解决Eclipse中文乱码(编辑器)
- 二叉树的操作
- 一个遍历树控件节点的方法
- HttpClient4 post上传文件, struts2 action接收
- jQuery Mobile笔记二
- 触摸屏原理及调试过程记录
- 常见http错误状态码及其作用
- linux页面回收浅析