• 循序渐进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

  • 相关阅读:
    处理火星文重温vchar,char,nvchar,nchar
    删除文件
    js常用正则表达式
    安装iis 配置iis
    无题
    js函数大全
    常用正则表达式
    QQ在线客服
    获取系统文字字体
    无限级删除的存储过程
  • 原文地址:https://www.cnblogs.com/OneDream/p/2878860.html
Copyright © 2020-2023  润新知