读书人

问了很多遍还是不懂解决方法

发布时间: 2012-03-23 12:06:21 作者: rapoo

问了很多遍还是不懂
dll和lib的区别,问了很多遍,也到处在网上查,可能我还是没弄懂。

举个例子,现在拿到之前的同事的工程,里面的子工程有的输出dll,有的输出lib,有的输出exe,我不明白这个是如何划分的,也就是说,什么时候我们需要dll,什么时候需要lib。

有的人说编译时需要lib,运行时需要dll,但是我还是不明白,有个dll就是提供一个工具类,做成lib不行吗?

求高人指点,谢谢。

[解决办法]
<windows核心编程>
[解决办法]
lib有2种,一种是静态库,即函数的实现都在lib库了
另一种是dll的导出库,即只包含dll里的函数或变量的符号
[解决办法]
一种一次直接载入内存lib,一种当运行到相关指令时才加载到内存中dll。操作系统中的概念性问题。具体还要有好多东西,我也不知道记得对不对。
[解决办法]
静态库和动态库...你猜~
[解决办法]
lib是在编译时直接填到你的代码里面了,dll是在运行的时候再去找函数的实现,
所以,lib只是在编译完成之后就可以不要了,但是dll却还需要
[解决办法]
编译器在编译过程中分为编译和运行两个阶段,
当编译时,程序如果引入了lib,则在编译的阶段将该库加载到程序中,
而运行时,程序如果引入了dll,则在运行的阶段将dll加载到程序中。
显然dll比lib更灵活,dll是在运行的时候再去动态加载,而lib没有运行的时候已经加载到程序中了。

[解决办法]
建议参考《深入理解计算机系统》 第七章
[解决办法]
我给你分清楚吧:
LIB:即静态库,需要在源代码中添加:

C/C++ code
#pragma comment(lib,"xxx.lib")
[解决办法]
C++应用程序优化 第八章有
[解决办法]
探讨
有个dll就是提供一个工具类,做成lib不行吗?


[解决办法]
《程序员的自我修养——链接、装载与库》
[解决办法]
探讨
引用:

<windows核心编程>

这位仁兄能不能顺便说一下是第几章,谢谢。

读书人网 >C++

热点推荐