(阅读评论后重新提出的问题)
如果我有一个应用程序或.dll 静态通过导入库动态链接某些.dll 然后我用不同的版本替换后者.dll怎么办? .dll导出原始.dll的所有符号,并可能添加一些新符号?
具体来说,有什么保证可行吗?
答案 0 :(得分:2)
这通常很有效,它是修复字段中的错误或安全漏洞的常用方法,无需重新编译客户端程序。成功的关键是ABI compatibility。
DLL文件中存在符号名称,加载DLL时,每个函数的地址都按符号名称查找。
可能妨碍兼容性的特定问题:
extern "C"
函数,但在新的DLL中它删除了小部件,则可能存在问题。Inf
的符号可能会中断。