DLL入口分析

在每一个DLL的入口函数(DllMain)中有着这样一个参数dwReason,这个参数表示着动态库当前所做的动作,对于这个参数,我们可以按如下方式来处理

 

BOOL WINAPI DllMain(

                               HANDLE hModule,   // DLL所在的模块

                               DWORD dwReason,    // 加载DLL的所进行的操作

                               PLONG plReserved)
{

     switch (dwReason)
    {

        case DLL_THREAD_ATTACH:    // 线程加载,

       case DLL_PROCESS_ATTACH:  // 进程加载,

        case DLL_THREAD_DETACH:  // 线程退出

        case DLL_PROCESS_DETACH: // 进程退出
    }

 

    return TRUE;
}

在几个分支中可以分别做相应的处理。

 有了这几个参数,我们就可以很方便的知道有哪些进程(线程)调用了我们的DLL

你可能感兴趣的:(thread,dll,winapi)