• dll


    dll可以有一个入口点函数,系统会在不同的时候调用这个入口函数。
    这个调用是通知性质的,通常被dll用来执行一些与进程或线程有关的初始化和清理工作
    如果将dll的入口点函数命名为DllMain之外的其他名称,那么虽然代码仍可以编译和链接成功,但入口函数将永远不会被
    调用
    DllMain函数执行的时候可能同一地址空间中的其他dll还没有执行他们的DllMain
    创建新进程时:系统分配进程地址空间
    映射exe,dll的文件映像
    创建主线程
    主线程调用每个dll的DllMain函数
    主线程执行可执行模块的C/C++运行时的启动代码
    主线程执行可执行程序的入口点函数
    LoadLibrary: 定位dll
    映射dll到进程的地址空间
    该线程调用dll的DllMain函数传递DLL_PROCESS_ATTACH
    DllMain返回true,线程继续执行
    DllMain范回false,系统自动从进程的地址空间撤销对dll文件的映射
    BOOL WINAPI DllMain(INSTANCE hInstDll,DWROD fdwReason,PVOID fImpLoad)
    hInstDll表示一个虚拟内存地址,dll的文件映像就被映射到进程地址空间中的这个位置
    fdwReason表示系统调用入口点函数的原因
    fImpLoad表示dll是不是隐式载入的

  • 相关阅读:
    Hibernate关联的集合对象排序
    Hibernate级联查询的分页问题
    Hibernate双向一对多级联保存优化
    Struts流程分析+源码分析
    jsp自定义函数库
    Java异常处理和设计
    struts2总体介绍
    struts和struts2的区别
    搭建struct环境
    struts-config.xml的配置
  • 原文地址:https://www.cnblogs.com/xiaoxiaocaicai/p/3594847.html
Copyright © 2020-2023  润新知