DLL的制作

1、DllMain函数是我们DLL的入口函数,

BOOL APIENTRY DllMain(  HMODULE hModule,
              DWORD ul_reason_for_call,
              LPVOID lpReserved
)
  {
  switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:  //被加载的时候
        //DLL的初始化     
case DLL_THREAD_ATTACH:   //当应用程序中有新线程启动的时候
        //线程安全的一些设置     
case DLL_THREAD_DETACH:   //某个线程终止的时候     case DLL_PROCESS_DETACH:  //被卸载的时候
        //DLL的销毁
       break;
    }
  
return TRUE;
}

2、在以上的DllMain中的ul_reason_for_call情况下DllMain都会被调用

3、对于一个DLL来说,最为重要的是它的导出函数

4、在生成导出函数的时候记得为函数加上extern来防止C++的命名粉碎。

5、挂Windows消息的Hook,这是一类Hook

HHOOK WINAPI SetWindowsHookEx(
  _In_ int       idHook,
  _In_ HOOKPROC  lpfn,     //每一种消息都会对应于一个回调函数,
  _In_ HINSTANCE hMod,
  _In_ DWORD     dwThreadId
);

 

posted @ 2017-10-07 16:09  _xiaohaige  阅读(280)  评论(0编辑  收藏  举报