一个很奇怪的重复链接lib的问题
早上在调一个程序的时候感觉非常奇怪,就是数据在初始化的时候会失败,后来发现是获取一个数据的时候出错了
假设我们又一个config.lib,sql.dll和main.exe
- 因为数据库在打开数据库的时候需要一个路径配置,这个配置在config.lib库里面
- main.exe初始化设置config.lib里面的数据
- main.exe调用sql.dll的函数,要求打开一个数据库
- sql.dll找config.lib获取一个路径,并打开一个路径
此时就会出错,因为我们在编译main.exe的时候把config.lib也链接进去了,所以在设置config的时候,main.exe会从自己的地址空间找到config.lib的数据段并设置,而sql.dll会从自己的数据段去获取数据,
所以会获取数据错误
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述