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 );