循序渐进DLL编程(二)
在循序渐进DLL编程(一)中学习了关于只是静态的lib的一些编写的方法,其实在DLL中介绍关于DLLMain函数,我们知道在windows程序加载dll程序的时候也是有入口的,就像加载C程序类似有main之类的入口,DLL没有提供Dllmain函数,应用程序也是能成功加载DLL文件,这是因为在windows找不到dllmain函数的时候,系统会从其他运行库中运行一个不做任何操作的DLLmain函数版本,这不代表DLL不需要DLLmain函数
在这里我们需要学习使用DLL的动态使用方法
BOOL APIENTRY DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) { printf("hModule.%p lpReserved.%p \n", hModule, lpReserved); switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: printf("Process attach. \n"); break; case DLL_PROCESS_DETACH: printf("Process detach. \n"); break; case DLL_THREAD_ATTACH: printf("Thread attach. \n"); break; case DLL_THREAD_DETACH: printf("Thread detach. \n"); break; } return (TRUE); }
通过上面的代码可以看到在加载DLL的时候会我们自己写的DLLmain而不是使用系统调用的其他DLL
我想做我自己
posted on 2013-01-27 15:54 AAAAAApple 阅读(226) 评论(0) 编辑 收藏 举报