8.6DLL文件及导入库

      Windows 以函数的形式为应用提供了各种功能。这些形式的函数称为API(Application Programming Interface,应用程序接口)。

     Windows 中,API的目标文件,并不是存储在通常的库文件中,而是存储在名为 DLL(Dynamic Link Library)文件的特殊库文件中。就如 Dynamic 这一名称所表示的那样,DLL 文件是程序运行时动态结合的文件。在前面的介绍中,我们提到 MessageBox()的目标文件是存储在 import32.lib 中的。实际上,import32.lib 中仅仅存储着两个信息,一是 MessageBox()在 user32.dll 这个 DLL 文件中,另一个是存储着 DLL
件的文件夹信息,MessageBox0的目标文件的实体实际上并不存在。我们把类似于 import32.lib 这样的库文件称为导入库

      与此相反,存储着目标文件的实体,并直接和 EXE 文件结合的库文件形式称为静态链接库。静态(static=静态的)同动态(dynamic=动态的)是相反的意思。存储着 sprintfo)的目标文件的 cw32lib 就是静态链接库。sprintf0)提供了通过指定格式把数值转换成字符串的功能。

      通过结合导入库文件,执行时从 DLL 文件中调出的 MessageBox()函数这一信息就会和 EXE 文件进行结合。这样,链接器链接时就不会再出现错误消息,从而就可以顺利编写 EXE 文件。

      至此,我们总结一下 Windows 中的编译及链接机制,如图 8-8所示

 

posted @ 2023-02-13 16:31  原魏薯片  阅读(25)  评论(0)    收藏  举报