`
pascal4123
  • 浏览: 115114 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

GetModuleHandle和GetLibrary的区别

    博客分类:
  • GP
 
阅读更多

来源: http://blog.sina.com.cn/s/blog_4c79cc450100kgcq.html

 

GetModuleHandle和GetLibrary两个函数都可得到模块的实例句柄,但用法略有不同。
HMODULE GetModuleHandle ( LPCTSTR lpModuleName );
1、若参数是NULL,则此函数返回调用进程的实例句柄,即可认为是返回此进程的指针。
2、若参数是一个以NULL结尾的字符串,则此函数返回此字符串指定的(他应是一个DLL)动态链接库。之后就

   可用函数FindResource和LoadResource来加载资源了。
注意:函数返回的句柄是不可继承、复制。


HINSTANCE LoadLibrary( LPCTSTR lpLibFileName );
1、参数可是一个DLL的名字(字符串),然后用GetProAddress来获得函数的地址,在用后要调用函数

   FreeLibrary来释放之。
2、参数还可一个可执行文件,来获得其地址指针。
3、此函数也可加载资源。


这两个函数在加载是有些不同,
  LoadLibrary加载一个库时,若在进程中已含有此库(即已映射到进程空间中),则此库的实例句柄的引

  用记数加1,调用FreeLibrary时,其引用记数减1,当为0时,就删除此库。
  而GetModuleHandle他没有采用引用记数的技术,调用他时,若有此模块,则直接就返回此模块的句柄了。

分享到:
评论

相关推荐

    MemLoadLibrary后可以用GetModuleHandle得到HMODULE

    `MemLoadLibrary` 和 `GetModuleHandle` 是与加载和管理DLL相关的两个关键API,它们在编程时尤其是在系统级编程和逆向工程中经常被用到。 `MemLoadLibrary` 并不是一个标准的Windows API函数,而是开发者为了在内存...

    还原x64跨进程"GetModuleHandle+GetProcAddress"实现过程(纯内存)

    本文将深入探讨一个具体的x64架构下的跨进程实现方法,即通过"GetModuleHandle"和"GetProcAddress"函数来动态获取并执行其他进程中的函数。这种方法在纯内存环境中尤其适用,因为不需要依赖任何文件系统交互。 首先...

    易语言API取执行文件名

    易语言API取执行文件名源码的核心在于调用Windows API中的几个关键函数,分别是`GetModuleHandle`、`GetModuleFileName`、`PathFindFileName`以及`MessageBox`。下面将详细介绍这些函数的功能及其在易语言中的应用。...

    C#使用全局钩子(hook)

    WH_KEYBORAD_LL 和 WH_MOUSE_LL 钩子是低级别的钩子,它们可以捕捉到键盘和鼠标的所有事件,而 WH_KEYBORAD 和 WH_MOUSE 钩子只能捕捉到当前线程的事件。因此,在 C# 中,我们应该使用 WH_KEYBORAD_LL 和 WH_MOUSE_...

    让你用GCC编译的程序拥有一个自定义的.ico图标

    总的来说,通过`.rc`资源文件和`windres`工具,我们可以为GCC编译的程序添加自定义的`.ico`图标,提升程序的辨识度和用户体验。这种方法对于跨平台的C++项目尤其有用,因为你可以保持代码的可移植性,同时又能享受到...

    Windows系统编程(第4版)实例和习题源码

    如CreateProcess和CreateThread用于创建进程和线程,GetModuleHandle和GetProcAddress用于动态链接库的加载和函数查找。 2. **进程与线程**:进程是程序的执行实例,线程则是进程内的执行单元。理解它们之间的关系...

    易语言Dwm桌面组合效果

    在易语言中实现Dwm桌面组合效果,我们需要调用Windows API函数,其中两个关键的函数是`API_DwmEnableComposition`和`GetModuleHandle`以及`GetProcAddress`。 1. `API_DwmEnableComposition`:这是一个用于控制DWM...

    易语言API实现文件对话框

    本篇文章将详细探讨如何利用易语言API来创建文件对话框,以及涉及的相关函数如`GetOpenFileNameA`和`GetSaveFileNameA`,以及`GetModuleHandle`。 首先,我们需要理解易语言的基本概念。易语言是一种以中文编程为...

    C#实现输入法功能详解

    本文还详细介绍了实现输入法功能所需的API,包括SetWindowsHookEx、UnhookWindowsHookEx、CallNextHookEx、GetCurrentThreadId、GetModuleHandle等。这些API可以用来实现鼠标键盘的监控或者锁定等功能。 在实现...

    Window_API_函数大全

    8. **系统信息**:GetSystemInfo、GetVersion和GetTickCount获取系统相关信息,GetModuleHandle和GetProcAddress用于动态链接库(DLL)的使用和函数查找。 9. **错误处理**:GetLastError获取最近发生的错误代码,...

    Windows API常用技巧汇编

    6. **系统资源管理**:例如,VirtualAlloc和VirtualFree用于动态内存分配和释放,GetModuleHandle和GetProcAddress用于获取和调用动态链接库(DLL)中的函数。 7. **注册表操作**:Windows API提供了RegOpenKeyEx、...

    windows编程启示录中文,扫描图片版

    Windows API是操作系统对外提供的接口,包含了大量函数,如CreateProcess用于创建新进程,CreateThread用于启动新线程,以及GetModuleHandle和GetProcAddress用于动态加载和查找函数等。这些API的正确使用是编写高效...

    winAPI.rar_winapi

    例如,CreateProcess函数可以用来启动新的进程,GetModuleHandle和GetProcAddress则用于动态链接库(DLL)的加载和函数查找,这对于插件系统或者跨模块通信特别有用。 “www.pudn.com.txt”文件可能是一个来源说明...

    新编Windows API参考大全

    SendMessage用于在窗口间传递消息,LoadLibrary和GetProcAddress用于动态加载库和获取函数地址,CreateFile用于文件操作,WriteFile和ReadFile进行文件读写,以及GetModuleHandle和GetProcAddress用于获取模块和函数...

    Windows dll 注入器.zip

    TLS 和 TLS 回调安全 Cookie图像清单和 SxS使模块对 GetModuleHandle、GetProcAddress 等可见。支持 DEP 下的私有内存异常支持 C++/CLI 图像(在这种情况下使用“添加加载器引用”)支持的操作系统Win7 - Win10 x64...

    VB6.0

    Private Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long ``` 2. **调用API函数**:声明后,可以在代码中像调用VB内置函数一样调用API函数...

    EXE文件图标更改 VB源代码

    首先,我们需要了解两个重要的API函数:`GetModuleHandle` 和 `UpdateResource`。`GetModuleHandle` 用于获取当前运行的模块(如EXE或DLL)的句柄,而`UpdateResource` 则是用来更新资源,如图标(ICO)等。 以下是...

    1500个WINDOWSAPI类 全集,以用途分类,Wow!

    例如CreateProcess函数用于创建新的进程,CreateThread函数用于创建新线程,GetModuleHandle和GetProcAddress则用于动态链接库(DLL)的管理和函数调用。 2. **用户界面**:Windows API包含了大量的函数用于创建、...

    源代码:在DLL中获取本DLL文件的路径.rar_dll_获取文件路径

    在Windows编程环境中,DLL(Dynamic Link Library)是用于封装共享函数和资源的库文件。有时,我们可能需要在...在处理路径字符串时,记得检查长度,防止溢出,并考虑宽字符(Unicode)和多字节字符集(MBCS)的区别。

    vb.net c#.net win32 API 查询工具(旧的)

    本项目是一个旧版的“VB.NET C#.NET Win32 API查询工具”,由作者独立编写,旨在帮助开发者快速查询和使用Win32 API函数。尽管已有新版,但旧版依然具有一定的参考价值,特别是对于初学者,可以深入理解API调用的...

Global site tag (gtag.js) - Google Analytics