Win32汇编——动态链接库

本文介绍了Win32汇编中的动态链接库(DLL)技术,包括其作为公共代码模块的作用,库的入口函数及其结构,导出函数的定义,库的发布方式,以及动态链接库的两种使用方法:常规方法和动态装入。同时,讨论了不同进程间如何共享库的代码和数据,以及如何进行混合编程以供C语言调用。
摘要由CSDN通过智能技术生成

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丢失、初始化失败、找不到导出函数等)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值