通过GetModuleHandle(NULL, .., .. ); 只能获取到 EXE文件所在路径,如果需要获取DLL路径怎么办?有如下两种办法:1. 从DllMain(hModule, …)中获取DLL句柄,并传入GetModuleHandle();但有些DLL被封装过的很难找到hModule,如...
分类:
其他好文 时间:
2015-08-17 00:57:03
阅读次数:
193
下例示范如何设定DLL,使之支持TLS.
#include
//This is the shared slot
static DWORD gdwTlsSlot;
BOOL DllMain(HINSTANCE hinst, DWORD fdwReason, LPVOID lpReserved)
{
LPVOID lpData;
UNREFERENCED_PARAMETER(hin...
分类:
编程语言 时间:
2015-07-31 13:02:34
阅读次数:
114
首先我们来认识下这些错误中提示的信息:
nafxcwd.lib,MFC静态链接库,调试版。(发布版是nafxcw.lib)
LIBCMTD.lib,多线程版的CRT库。
DLLMain函数,在dllmodul.cpp和dllmain.cpp中都有定义。
new、delete、delete[],CRT库中有一套标准实现,但是MFC中均重新实现了一遍。
那么上面的错误的意思即是,已经链接过LIBCMTD.lib,再链接nafxcwd.lib即会报重复定义的错误。
对于MFC工程中的DllMain,new, de...
分类:
编程语言 时间:
2015-07-17 21:06:29
阅读次数:
145
首先我们来认识下这些错误中提示的信息: nafxcwd.lib,MFC静态链接库,调试版。(发布版是nafxcw.lib) LIBCMTD.lib,多线程版的CRT库。 DLLMain函数,在dllmodul.cpp和dllmain.cpp中都有定义。 new、delete、delete[]...
分类:
编程语言 时间:
2015-07-17 20:46:43
阅读次数:
220
想想还是把这个记录下吧,虽然不难,但由于平时写得不多,老是搞忘了。1、我们来编写一个简单的DLL程序。首先,我们来看下入口函数DllMain()。DllMain()有3个参数:(1)hModule:DLL模块的句柄。(2)ul_reason_for_call:DllMain函数被调用的原因。其取值有...
分类:
其他好文 时间:
2015-06-29 00:26:47
阅读次数:
164
今日看到一个不带dllmain的dll,忽然觉得有点奇怪,然后查了一下,原来dll还可以不需要dllmain,甚至可以自己定义入口先mark以下的资料,有空再总结一下。。。同时dll劫持,有必要亲身去测试一下了1.创建纯资源dll2.dll木马内幕揭秘 (由于原站点文章已经不存在了,所以转一下这篇转...
分类:
其他好文 时间:
2015-06-16 21:12:00
阅读次数:
109
以前在提供给客户的接口库中如果是dll,则dll中的互斥锁很容易在dllmain中初始化,但是对于lib静态库则没有想到更好的处理办法。现在才发现原来可以在lib中也可以简单直接的在main函数外初始化。大家有这方面更深一步的研究,希望能共享一下,多谢!1、vs2010下,编译为可执行程序(注意.....
分类:
其他好文 时间:
2015-05-26 15:46:27
阅读次数:
336
创建项目 新建项目-> 选择Win32项目 输入项目名称,点击确定。在程序向导中选择下一步 选择DLL. 由于我想创建的是相对独立的DLL,所以不选择ATL和MFC. 点击完成。 Main文件分析。 打开dllmain.cpp文件,这是DLL的入口文件,在这个文件里,可以在进程或者线程加载此文件时进...
分类:
其他好文 时间:
2015-05-09 13:07:24
阅读次数:
143
编译MFC DLL程序时出现
Error
2 error LNK1169: one or more multiply defined symbols found
E:\C++\HookTest\CopyFileDetour\CFDetour\Debug\1t.dll
1 1t
1
Error 1
error LNK2005: _DllMain@12 already defined...
分类:
其他好文 时间:
2015-05-04 20:19:05
阅读次数:
265
问题:DLL中如何获取DLL自身所在的文件夹,而不是主调程序的。用GetCurrentDirectory获取的是exe主调程序所在的目录,不符合我的要求;用GetModuleFileName只能在DllMain中才能获取到,因为DllMain第一个参数hInstance就是DLL模块局并,而GetModuleFileName()只有传入DLL模块句柄才能获取DLL路径。
但是,如果不是DllMa...
分类:
其他好文 时间:
2015-05-01 01:50:43
阅读次数:
173