zoukankan      html  css  js  c++  java
  • 动态链接库dll

    DLL(Dynamic Link library):动态链接库,库中包含了由多个程序同时使用的代码和数据。

    之所以使用DLL,从下面一张图就能大致看出。

    DDL有助于多个程序共享代码和数据。

    而我们传统所说的库,如<stdio.h>它们属于静态库:函数和数据被编译进一个二进制文件(通常扩展名为.LIB)。在使用静态库的情况下,编译链接可执行文件时,链接器从库中复制这些函数和数据并把他们和应用程序的其他模块组合起来创建最终的可执行文件(.EXE文件)。

    而动态库则不需要在编译过程中复制所有的内容,让每个程序一人一份。

    在使用动态库的时候,往往提供两个文件:一个引入库和一个DLL。引入库包含被DLL导出的函数和变量的符号名,DLL包含实际的函数和数据。在编译链接可执行文件时,只需要链接引入库,DLL中的函数代码和数据并不复制到可执行文件中,在运行的时候,再去加载DLL,访问DLL中的导出函数。

    当然,使用DLL有很多优点,但缺点如版本不兼容,同时访问造成的冲突等等。

    对于版本不兼容的问题,我们的解决方法是:在于编译程序时,由VS生成一个manifest文件,指明当前应用程序所使用的动态链接库版本号;发布程序时需同时发布该manifest文件。运行调用时,manifest会指定我们所用的动态链接库的版本。

  • 相关阅读:
    SAP UI5应用和Hybris Commerce的国际化(internationalization)支持
    PHP获取目录下面所有文件和文件夹
    php利用smtp类轻松的发送电子邮件
    Redis和Memcached的一些区别
    redis命令大全参考手册
    redis类与用法
    公共类属性使用
    php 非对称加密解密类
    RSA密钥生成与使用
    Centos下安装Lamp和vsftpd、redis
  • 原文地址:https://www.cnblogs.com/zhazhalovecoding/p/6098941.html
Copyright © 2011-2022 走看看