就你不知道:二进制兼容性

简单的理解,就是一个exe文件需要用到其他dll文件,如果我们不重新编译链接exe,替换一个新的dll,而运行正常,则称为二进制兼容良好。

这种应用场景很多,例如,发布新的补丁程序,只给客户升级极少的dll文件,而多数的exe,dll都不用更新了。

不幸的是,不随愿的情况也很多。

场景一:

DLL的源码 int __cdecl add(int,int);

DLL的二进制程序入口 ?add@@YAHHH@Z

EXE的源码 int x = add(1,2);  
EXE要寻找的入口  ?add@@YAHHH@Z  

此时:DLL和EXE配合良好


DLL的新修改的源码 int __cdecl add(int,int,int c=0);
DLL的入口(假设它重新编译链接) ?add@@YAHHHH@Z
EXE的源码int x = add(1,2);  

EXE要寻找的入口(假设它未重新编译链接)?add@@YAHHH@Z

此时:DLL提供的入口和EXE想进入的入口不一致了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值