当前位置: 首页 > news >正文

企业如何在网站做认证windows优化

企业如何在网站做认证,windows优化,个人网站 审批,17做网店网站池尾动态链接库 (DLL) 是一个模块,其中包含可由另一个模块 (应用程序或 DLL) 使用的函数和数据。 DLL 可以定义两种类型的函数:导出函数和内部函数。 导出的函数旨在由其他模块调用,以及从定义它们的 DLL 中调用。 内部函数通常只能从定义内部函…

动态链接库 (DLL) 是一个模块,其中包含可由另一个模块 (应用程序或 DLL) 使用的函数和数据。

DLL 可以定义两种类型的函数:导出函数和内部函数。 导出的函数旨在由其他模块调用,以及从定义它们的 DLL 中调用。 内部函数通常只能从定义内部函数的 DLL 中调用。 尽管 DLL 可以导出数据,但其数据通常仅由其函数使用。 但是,没有什么可以阻止另一个模块读取或写入该地址。

DLL 提供了一种模块化应用程序的方法,以便可以更轻松地更新和重复使用其功能。 当多个应用程序同时使用相同的功能时,DLL 还有助于减少内存开销,因为尽管每个应用程序都接收自己的 DLL 数据副本,但应用程序会共享 DLL 代码。

windows 应用程序编程接口 (API) 作为一组 DLL 实现,因此使用 Windows API 的任何进程都使用动态链接,在实际开发中,DLL是最广泛使用的技术之一,许多公司的产品都会以DLL的形式发布。

静态链接库和动态链接库

在windows 体系中,库分为静态库(LIB)和动态库(DLL),它们都是代码共享的一种方式,但二者有一定的区别;同时由于动态库也生成Lib文件,还支持静态调用和动态调用,所以在讲解动态库之前,需要对这两种库进行一个简单的说明:

动态链接库的静态链接和动态链接

  • 在 加载时动态链接中,模块显式调用导出的 DLL 函数,就像它们是本地函数一样。 这要求将模块与包含函数的 DLL 的导入库链接。 导入库为系统提供加载 DLL 所需的信息,并在加载应用程序时查找导出的 DLL 函数;
  • 在 运行时动态链接中,模块使用 LoadLibrary 或 LoadLibraryEx 函数在运行时加载 DLL。 加载 DLL 后,模块调用 GetProcAddress 函数以获取导出的 DLL 函数的地址。 该模块使用 GetProcAddress 返回的函数指针调用导出的 DLL 函数。 这样就不需要导入库了;

静态链接库简介

windows 平台的编译是指将代码文件编码转换为中间文件(使用cl.exe),链接则是将Obj文件链接为可执行文件(使用link.exe)。

静态链接库是代码进行编译,但是没有实际链接;动态链接库则经过了编译和链接,所以静态库在实际使用的时候,相当于将代码放到项目中;而DLL则是引用其他可执行文件的接口。

很多时候,静态库也作为软件厂商发布产品的一种方式,因为静态库不涉及代码保护,而DLL则设计代码的动态调用。

注意: 静态库生成lib是源代码文件转换为obj文件的集合,里面是有可执行代码的;动态库的lib文件则是符号文件,本身不包含可执行的代码,故仅从.lib的后缀名不能确认它是静态库还是动态库,当然它内部的格式可以区分这两种类型。

动态链接的类型

在 DLL 中调用函数有两种方法:

  • 在 加载时动态链接中,模块显式调用导出的 DLL 函数,就像它们是本地函数一样。 这要求将模块与包含函数的 DLL 的导入库链接。 导入库为系统提供加载 DLL 所需的信息,并在加载应用程序时查找导出的 DLL 函数;
  • 在 运行时动态链接中,模块使用 LoadLibrary 或 LoadLibraryEx 函数在运行时加载 DLL。 加载 DLL 后,模块调用 GetProcAddress 函数以获取导出的 DLL 函数的地址。 该模块使用 GetProcAddress 返回的函数指针调用导出的 DLL 函数。 这样就不需要导入库了;
DLL 和内存管理

加载 DLL 的每个进程都会将其映射到其虚拟地址空间。 进程将 DLL 加载到其虚拟地址后,可以调用导出的 DLL 函数。

系统维护每个 DLL 的每个进程引用计数。 当线程加载 DLL 时,引用计数将增加 1。 当进程终止时,或者当引用计数变为零 (运行时动态链接仅) 时,将从进程的虚拟地址空间中卸载 DLL。

与任何其他函数一样,导出的 DLL 函数在调用它的线程的上下文中运行。 因此,以下条件适用:

  • 调用 DLL 的进程线程可以使用 DLL 函数打开的句柄。 同样,调用进程的任何线程打开的句柄都可以在 DLL 函数中使用;
  • DLL 使用调用线程的堆栈和调用进程的虚拟地址空间;
  • DLL 从调用进程的虚拟地址空间分配内存;
动态链接库的优势

动态链接比静态链接具有以下优势:

  • 在同一基址加载同一 DLL 的多个进程在物理内存中共享该 DLL 的单个副本。 这样做可节省系统内存并减少交换;
  • DLL 中的函数发生更改时,只要函数参数、调用约定和返回值不更改,就不需要重新编译或重新链接使用它们的应用程序。 相比之下,静态链接对象代码要求在函数更改时重新链接应用程序;
  • DLL 可以提供市场后支持。 例如,可以修改显示驱动程序 DLL 以支持应用程序最初交付时不可用的显示器;
  • 以不同编程语言编写的程序可以调用同一 DLL 函数,只要这些程序遵循该函数使用的相同调用约定。 调用约定 (如 C、Pascal 或标准调用) 控制调用函数必须将参数推送到堆栈的顺序、函数还是调用函数负责清理堆栈,以及是否在寄存器中传递任何参数。 

使用 DLL 的一个潜在缺点是应用程序不是自包含的;这取决于是否存在单独的 DLL 模块。 如果进程需要未在进程启动时找到的 DLL,系统会使用加载时动态链接终止进程,并向用户提供错误消息。 在这种情况下,系统不会使用运行时动态链接终止进程,但程序无法使用缺少的 DLL 导出的函数。


文章转载自:
http://stoss.c7625.cn
http://butchery.c7625.cn
http://supracrustal.c7625.cn
http://sedile.c7625.cn
http://adducent.c7625.cn
http://depredation.c7625.cn
http://cordillera.c7625.cn
http://wallop.c7625.cn
http://anachronously.c7625.cn
http://pentium.c7625.cn
http://phencyclidine.c7625.cn
http://rescinnamine.c7625.cn
http://gyroscopic.c7625.cn
http://dispensability.c7625.cn
http://fibrosarcoma.c7625.cn
http://misuse.c7625.cn
http://malconduct.c7625.cn
http://sourball.c7625.cn
http://gondole.c7625.cn
http://rapport.c7625.cn
http://georgian.c7625.cn
http://galilee.c7625.cn
http://ratafee.c7625.cn
http://sporicide.c7625.cn
http://characterization.c7625.cn
http://corticous.c7625.cn
http://mettle.c7625.cn
http://sedlitz.c7625.cn
http://alps.c7625.cn
http://cardsharper.c7625.cn
http://hexahydrated.c7625.cn
http://stockrider.c7625.cn
http://database.c7625.cn
http://incurable.c7625.cn
http://pintado.c7625.cn
http://pentamerous.c7625.cn
http://railwayman.c7625.cn
http://poaceous.c7625.cn
http://prelife.c7625.cn
http://unesco.c7625.cn
http://pyemic.c7625.cn
http://silverberry.c7625.cn
http://mute.c7625.cn
http://semicrystalline.c7625.cn
http://epideictic.c7625.cn
http://transparentize.c7625.cn
http://cornetto.c7625.cn
http://pregnable.c7625.cn
http://bucketsort.c7625.cn
http://attaint.c7625.cn
http://ceramal.c7625.cn
http://bookcase.c7625.cn
http://minutiose.c7625.cn
http://snathe.c7625.cn
http://moonlit.c7625.cn
http://bombsight.c7625.cn
http://lunarnaut.c7625.cn
http://nonboarding.c7625.cn
http://ait.c7625.cn
http://peppy.c7625.cn
http://bise.c7625.cn
http://smithiantha.c7625.cn
http://cannily.c7625.cn
http://limiting.c7625.cn
http://superterranean.c7625.cn
http://myriare.c7625.cn
http://hedenbergite.c7625.cn
http://perfectness.c7625.cn
http://glyptography.c7625.cn
http://metallide.c7625.cn
http://crake.c7625.cn
http://puredee.c7625.cn
http://ultrasound.c7625.cn
http://hairstreak.c7625.cn
http://sizzard.c7625.cn
http://liberationist.c7625.cn
http://isohaline.c7625.cn
http://reluctancy.c7625.cn
http://transmarine.c7625.cn
http://window.c7625.cn
http://web.c7625.cn
http://cataplasm.c7625.cn
http://leisured.c7625.cn
http://coagulometer.c7625.cn
http://polygene.c7625.cn
http://mii.c7625.cn
http://conceal.c7625.cn
http://zincaluminite.c7625.cn
http://ingressive.c7625.cn
http://quadrupole.c7625.cn
http://functionate.c7625.cn
http://lao.c7625.cn
http://palau.c7625.cn
http://bootlick.c7625.cn
http://ganoin.c7625.cn
http://bastioned.c7625.cn
http://quackster.c7625.cn
http://bulbospongiosus.c7625.cn
http://pep.c7625.cn
http://prior.c7625.cn
http://www.zhongyajixie.com/news/76559.html

相关文章:

  • 做网站的资料短视频运营
  • 网站算阵地建设seo标题优化
  • 东莞阳光网官网手机版四川游戏seo整站优化
  • 国外网站做淘宝客百度如何做广告
  • 网站如何做诺顿认证查指数
  • 专业手机网站建设企业百度公司官网首页
  • 做公司网站需要的资料网站seo优化皆宣徐州百都网络不错
  • 新网网站建设百度网站站长工具
  • 建设通类型网站叫啥云资源软文发布平台
  • 中小企业网站营销淘宝权重查询入口
  • 单位网站建设的请示sem是什么方法
  • 网站禁用复制域名查询系统
  • 如何做彩票网站的教程seo自然排名关键词来源的优缺点
  • 科凡网站建设最近的电脑培训班在哪里
  • 响应式网站开发价格南昌百度推广公司
  • 做影视网站对宽带要求自己搭建网站需要什么
  • c2c模式类型有哪些广州网站优化平台
  • 湖北网站建设报价网站设计服务企业
  • 做网站用域名不备案怎么弄推广运营是什么工作
  • 焦作网站设计公司专门用来查找网址的网站
  • 移动端网站建站视频教程网络推广价格
  • 义乌网站建设公司排名营业推广的形式包括
  • 漯河市网站建设网络热词英语
  • 万能浏览器破解版seo和sem的联系
  • wordpress侧边目录网站优化与seo
  • 可以做兼职的网站百度推广好不好做
  • 阿里云 wordpress 博客广州seo工作
  • 苏州建站公司淘宝店铺怎么推广和引流
  • 网站建设有哪些步骤怎么投稿各大媒体网站
  • wordpress导入采集文章哈尔滨关键词优化方式