1、项目 12:动态链接库在 PDA研发中使用 DLL文件( 2) 本节课程主要知识点n 动态链接库的加载n 动态链接库的静态加载n 动态链接库的动态加载重点和难点重点n 动态链接库的加载方法 难点n 静态调用中建立关联动态链接库的加载动态链接库的加载n 动态链接库的加载分为即静态加载方式和动态加载方式。n 静态加载方式是在编译程序代码时即完成对 DLL的加载,应用程序结束时卸载DLL。n 动态加载方式是使用用 API函数来加载和卸载 DLL的。 动态链接库的静态加载动态链接库的静态加载n 静态加载方式由编译系统完成对 DLL的加载。n 应用程序完成对 DLL的卸载。n 加载方法简单,但不够灵活。
2、LIB文件用来做什么?n 在生成一个 DLL文件时,链接程序会自动生成一个与之对应的 LIB文件。n LIB文件包含了每一个 DLL导出函数的符号名和可选的标识号,但是并不含有实际的代码。编译应用程序n 把生成动态连接库时生成的 LIB文件和DLL文件加入到应用程序的工程中。n 通过静态链接方式编译生成应用程序时,应用程序中的调用函数与 LIB文件中导出符号相匹配,这些符号或标识号进入到生成的 EXE文件中。n LIB文件作为 DLL的替代文件被编译到应用程序工程中。DLL中函数的调用( 1/2)n 当应用程序运行过程中需要加载 DLL文件时, Windows CE根据 LIB中的信息发现并加载 DLL。n 然后通过符号名或标识号实现对 DLL函数的动态调用。DLL中函数的调用( 2/2)n 所有被应用程序调用的 DLL文件都会在应用程序 EXE文件加载时被加载在到内存中。n 可执行程序直接通过函数名调用 DLL的输出函数,调用方法和程序内部其他的函数是一样的。