静态连接库和动态连接库有什么区别?
由于静态连接库将目标代码连接到应用程序中,当程序运行时,如果两个程序调用了同一静态库中的函数,内存中将出现该函数的多份拷贝。而动态连接库则更适合于多任务环境:当两个应用程序调用了同一动态连接库中的同一个函数时,内存中只保留该函数的一份拷贝,这样内存利用率更高。
利用动态连接库还可以实现资源共享:像Windows下的串行口、并行口驱动程序都是动态连接库;另外,Windows下的字体也是动态连接库。
但是,静态库由于将目标代码连入应用程序中,应用程序可独立运行。而使用动态连接库时,随同应用程序还要提供动态连接库文件(DLL文件)。比如,发布Visual C++编写的程序时,如果使用了动态连接,则在提供可执行文件同时还需要提供Visual C++的动态连接库。
应用程序和动态连接库都是完成一定功能的可执行模块。它们的区别是:应用程序有自己的消息循环,而动态连接库没有自己的消息循环(但是它可以发送消息);应用程序一般是主动完成某一功能的,而动态连接库主要是被动(在中断驱动程序中也主动完成一些功能)的提供服务。
免责声明:本内容来源于第三方作者授权、网友推荐或互联网整理,旨在为广大用户提供学习与参考之用。所有文本和图片版权归原创网站或作者本人所有,其观点并不代表本站立场。如有任何版权侵犯或转载不当之情况,请您通过400-62-96871或关注我们的公众号与我们取得联系,我们将尽快进行相关处理与修改。感谢您的理解与支持!







请先 登录后发表评论 ~