`
pascal4123
  • 浏览: 110736 次
  • 性别: 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得到HMODULE

    易语言API取执行文件名

    易语言API取执行文件名源码,API取执行文件名,GetModuleHandle,GetModuleFileName,PathFindFileName,MessageBox

    C# 鼠标钩子

    wpf和winform,在我的代码里面是有区别的! 注意看我下面的代码 用winform的朋友们需要把HookManager.Callback这个类里面 1.[DllImport("kernel32.dll")] private static extern IntPtr GetModuleHandle(IntPtr path...

    易语言打乱键盘布局

    易语言打乱键盘布局源码,打乱键盘布局,处理,GetModuleHandle,CallNextHookEx,SetWindowsHookEx,UnHookWindowsHookEx,CopyMemory1,CopyMemory

    CrossArchitecture:允许以C ++风格在wow64仿真过程中调用X64 API。 设计快如闪电,易于使用

    auto ntdll32 = GetModuleHandle(L"ntdll.dll"); // original version of getmodulehandle auto ntdll64 = GetModuleHandle64(L"ntdll.dll"); // in wow64 emulation process, there are both ntdll32/64 加载64位...

    vc基本算法

    基于vc方面的算法和设计类型数据m_m2.AddString("as"); //int &q,int &p; //m_ctrlSlider.GetSelection(int &q,int &p); m_ctrlSlider.SetSelection(10,20); // asd(); //m_m2.Default(); int SetLineSize(int nsize...

    武大大的钩子程序源码

    RepointAddrInModule(GetModuleHandle(PChar(DLL)), OldFunc, NewFunc); Func := Pointer(Integer(DOS) + ImportDesc.LookupTable); while Func^ <> nil do begin f := LocateFunctionAddress(Func^); if f = ...

    gopherheaven:实施天门技术

    :smiling_face_with_halo:用法如果您熟悉Windows上的GetModuleHandle,GetProcAddress和Syscall,则过程大致相同。 有关更多信息,请参见目录。 下面的示例显示调用64位 ntdll , err := heaven . GetModuleHandle ...

    易语言Dwm桌面组合效果

    易语言Dwm桌面组合效果源码,Dwm桌面组合效果,API_DwmEnableComposition,GetModuleHandle,GetProcAddress

    易语言API实现文件对话框

    易语言API实现文件对话框源码,API实现文件对话框,文件对话框,GetOpenFileNameA,GetSaveFileNameA,GetModuleHandle

    易语言键盘钩子

    易语言键盘钩子源码,键盘钩子,子程序_键盘处理,CallNextHookEx,SetWindowsHookEx,GetModuleHandle,UnhookWindowsHookEx

    驱动保护隐藏.ec

    .DLL命令 GetModuleHandle, 整数型, "kernel32", "GetModuleHandleA", 公开 .参数 lpModuleName, 文本型 .DLL命令 RtlMoveMemory, 整数型, , "RtlMoveMemory", 公开, _写内存3 .参数 dest, 整数型, 传址 .参数 ...

    易语言取QQclientkey

    易语言取QQclientkey源码,取QQclientkey,获取QQ_clientkey,AtlAxWinInit,AtlAxGetControl,CreateWindowEx,GetModuleHandle,SendMessage

    易语言创建带图标的组合框

    易语言创建带图标的组合框源码,创建带图标的组合框,创建ComboBox,GetModuleHandle,CreateWindowEx,SendMessageA

    易语言动态创建图片框

    易语言动态创建图片框源码,动态创建图片框,设置图片框图片,CreateWindowEx,GetModuleHandle,发送消息_

    易语言HOOK任务管理器

    易语言HOOK任务管理器源码,HOOK任务管理器,进程_取进程ID,GetProcAddress,GetModuleHandle,WriteProcessMemory,OpenProcess

    易语言李光内存操作模块

    易语言李光内存操作模块源码,李光内存操作模块,GetCurrentProcess,ReadProcessMemory,WriteProcessMemory,GetModuleHandle,GetProcAddress,VirtualAllocEx,VirtualFreeEx

    易语言复制GIF

    易语言复制GIF源码,复制GIF,复制图像到剪辑板,通用对话框,GetOpenFileNameA,LocalSize,GetModuleHandle,GetSaveFileNameA

    易语言屏蔽多个键盘按键

    易语言屏蔽多个键盘按键源码,屏蔽多个键盘按键,钩子函数,SetWindowsHookEx,CopyMemory,CallNextHookEx,GetModuleHandle,UnHookWindowsHookEx

    易语言全局键盘钩子应用

    易语言全局键盘钩子应用源码,全局键盘钩子应用,处理,GetModuleHandle,CallNextHookEx,SetWindowsHookEx,UnHookWindowsHookEx,CopyMemory1,CopyMemory

Global site tag (gtag.js) - Google Analytics