动态链接英文是Dynamic Linking,他是使得不同的程序开发者和部门能够相对独立地开发和测试自己的程序模块,从某种意义上来讲大大促进了程序的开发效率,原先限制程序的规模也随之扩大。但是慢慢地静态链接的诸多缺点也逐步暴露出来,比如浪费内存和磁盘空间、模块更新困难等问题,使得人们不得不寻找一种更好的方式来组织程序的模块。

动态链接在可执行文件装载时或运行时,由操作系统的装载程序加载库,大多数操作系统将解析外部引用(比如库)作为加载过程的一部分,在这些系统上可执行文件包含一个叫做import directory的表,该表的每一项包含一个库的名字,根据表中记录的名字装载程序在硬盘上搜索需要的库,然后将其加载到内存中预先不确定的位置,之后根据加载库后确定的库的地址更新可执行程序,可执行程序根据更新后的库信息调用库中的函数或引用库中的数据,这种类型的动态加载被Windows和Linux的大多数系统采用。
动态链接的优点:
①更加节省内存并减少页面交换;
② DLL文件与EXE文件独立,只要输出接口不变(即名称、参数、返回值类型和调用约定不变),更换DLL文件不会对EXE文件造成任何影响,因而极大地提高了可维护性和可扩展性;
③不同编程语言编写的程序只要按照函数调用约定就可以调用同一个DLL函数;
④适用于大规模的软件开发,使开发过程独立、耦合度小,便于不同开发者和开发组织之间进行开发和测试。
缺点:
使用动态链接库的应用程序不是自完备的,它依赖的DLL模块也要存在,如果使用载入时动态链接,程序启动时发现DLL不存在,系统将终止程序并给出错误信息。而使用运行时动态链接,系统不会终止,但由于DLL中的导出函数不可用,程序会加载失败;速度比静态链接慢。当某个模块更新后,如果新模块与旧的模块不兼容,那么那些需要该模块才能运行的软件,统统撕掉。这在早期Windows中很常见。
动态页面含有?的,或是以asp,php,jsp,aspx结尾的都是动态,动态页面是可以通过网站后台管理系统对网站的内容进行更新管理,动态页面在服务器里面不是真实存在的,访问动态页面需要经过数据库,动态页面是动态连接,发布公司产品、交流互动、博客、网上调查等,这都是动态网站的一些功能。