DLL
新源译码
这个作者很懒,什么都没留下…
展开
-
让DLL卸载自身 -- FreeLibraryAndExitThread()
实际问题:DLL是MFC的DLL, 我在这个DLL的初始化函数中创建了一个对话框窗口, 如何在dll中操作实现结束dll当前的线程和释放掉dll. 比如在窗口(模态对话框)关闭后结束线程, 释放dll.kernel32.dll里有个函数叫FreeLibraryAndExitThread就是专门给你做这种事情用的:正常情况下你调用FreeLibrary来释放当前执行的代码所在的原创 2015-04-07 22:49:46 · 16056 阅读 · 0 评论 -
DLL中如何获取自身的句柄
如题:一个EXE加载了一个DLL。我想在DLL中动态的获取DLL本身的实例句柄.有没有什么方法?我不想使用DllMain中保存全局句柄的方法。说明:(1) MFC扩展DLL中int DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved) 第一个参数即为DLL句柄(2)WIN32DLL中BOO原创 2015-04-27 16:57:02 · 15139 阅读 · 1 评论 -
InternetOpenUrl()在DllMain中卡死的问题
我在DLL中使用Wininet API访问网络, 调用InternetOpenUrl()函数的时候, DLL直接卡死, 且不能使用GetLastError()函数得到错误ID. 并且, 经测试, 不管是MFC扩展DLL工程的DllMain中, 还是Win32 Dll工程的DllMain中,使用InternetOpenUrl()或InternetCheckConnection()都会卡死。原创 2015-04-27 23:58:42 · 2447 阅读 · 2 评论 -
DLL中如何获取自身的路径
问题:DLL中如何获取DLL自身所在的文件夹,而不是主调程序的。用GetCurrentDirectory获取的是exe主调程序所在的目录,不符合我的要求;用GetModuleFileName只能在DllMain中才能获取到,因为DllMain第一个参数hInstance就是DLL模块局并,而GetModuleFileName()只有传入DLL模块句柄才能获取DLL路径。但是,如果不是DllMa原创 2015-05-01 00:59:34 · 24375 阅读 · 1 评论 -
创建自己的dll与lib:dll与lib文件的区别
经常使用到第三方库。比如:glut,freetype,sdl,大一点的有CEGUI,OSG等。这些库虽然是开源的,但是很多时候只是使用他们,一般不会去修改。使用就会涉及到三个东西:.h .lib .dll文件。主要有三种模式:.h+.lib .h+.lib+.dll.dll 第二种是最常见的,其他两种都比较少转载 2015-07-10 15:09:56 · 620 阅读 · 0 评论 -
Wow64(32位进程)注入DLL到64位进程
http://blog.poxiao.me/p/wow64-process-inject-dll-into-x64-process/#Wow64环境下32位进程注入64位进程DLL注入向其他进程注入DLL通常的做法是通过调用CreateRemoteThread这个API在目标进程内创建一个远程线程,用这个线程来调用LoadLibraryA或LoadLibraryW(下文统称Load转载 2015-07-04 13:11:31 · 5945 阅读 · 0 评论 -
32位程序注入64位DLL到64位进程
向其他进程注入DLL通常的做法是通过调用CreateRemoteThread这个API在目标进程内创建一个远程线程,用这个线程来调用LoadLibraryA或LoadLibraryW(下文统称LoadLibrary)以实现让目标进程加载指定的DLL文件。使用CreateRemoteThread创建一个远程线程需要传入一个线程过程函数的地址,并且这个函数地址是需要在目标进程中有效的。由于LoadLi原创 2015-08-23 17:58:43 · 11462 阅读 · 0 评论 -
DLL共享数据段
//变量定义,不同Instance共享的该变量#pragma data_seg("SHARED")static HHOOK hhk=NULL; //鼠标钩子句柄static HINSTANCE hinst=NULL; //本dll的实例句柄 (hook.dll)#pragma data_seg()#pragma comment(linker, "/section:SHARED,rws"原创 2015-08-19 17:07:11 · 2830 阅读 · 0 评论 -
使用内存共享机制进程间通讯
前一篇中简单介绍了进程间通讯的机制之一-------消息机制。本篇中我简要的描述一下进程间通讯的另一种机制----------内存共享机制。WINDOWS中要使用内存共享的方式在进程间通讯需要采用DLL方式。由于WIN32把DLL装入全局内存并把DLL映射到每个程序的地址空间。所有载入DLL的应用程序只能共享程序代码,不能共享数据。要想使DLL的数据区能设计成共享的存储区,可以通过#pra原创 2015-10-07 01:10:54 · 612 阅读 · 0 评论