动态链接的优点

【勇芳软件工作室】汉化HomePreviousNext

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

*加载DLL在同一个基地址的进程可以同时使用一个DLL,在物理内存中共享DLL代码的一个副本。这样做可以节省内存并减少交换。

*当DLL中的函数更改时,只要函数参数,调用约定和返回值不变,使用它们的应用程序就不需要重新编译或重新链接。相比之下,静态链接的对象代码要求应用程序在功能更改时重新链接。

*一个DLL可以提供售后支持。例如,可以修改显示驱动程序DLL以支持最初发布应用程序时不可用的显示。

*使用不同编程语言编写的程序可以调用相同的DLL函数,只要程序遵循与函数使用相同的调用约定。调用约定(如C,Pascal或标准调用)控制调用函数必须将参数推送到堆栈的顺序,函数或调用函数是否负责清理堆栈,以及是否有任何参数通过寄存器。有关更多信息,请参阅编译器随附的文档。

使用DLL的潜在缺点是应用程序不是独立的;它取决于是否存在单独的DLL模块。如果系统需要在进程启动时找不到的DLL并向用户发出错误消息,系统将使用加载时动态链接终止进程。在这种情况下,系统不会使用运行时动态链接终止进程,但DLL导出的函数对程序不可用。