1.系统中大部分包含公用代码的模块,都有可能是动态链接库
2.库的入口函数对应用程序是不可见的,它仅供操作系统使用。Windows在库加载、卸载、进程中线程的创建和结束等时候调用入口函数,以便动态链接库采取相应的工作。
入口函数的结构一般为:
DllEntry proc hInstDll,dwReason,dwReserved
mov eax,dwReason
.if eax == DLL_PROCESS_ATTACH
;保存hInstDll 和初始化操作
.if 成功
mov eax,TRUE
.else
mov eax,FLASE
.endif
.elseif eax == DLL_THREAD_ATTACH
;为新线程分配资源
.elseif eax == DLL_THREAD_DETACH
;线程释放资源
.elseif eax == DLL_PROCESS_DETACH
;释放库使用的资源
.endif
ret
DllEntry endp
3.库能正常装入所必须的代码是 入口函数
4.库使用导出函数(*.def文件)通过 EXPORTS 关键字指定需导出的函数
5.库的发布:若为最终产品,只需发布dll文件;若组件,提供二次开发,则需发布dll文件,lib、inc以及其他语言对应的头文件
6.动态链接库的使用:
6.1常规方法: 使用 include ***.inc 和 includelib ***.lib 直接调用库函数 ;使用方便,但是如果装入DLL过程中有任何错误(dll丢失、初始化失败、找不到导出函数等)