一个很奇怪的重复链接lib的问题

早上在调一个程序的时候感觉非常奇怪,就是数据在初始化的时候会失败,后来发现是获取一个数据的时候出错了

假设我们又一个config.lib,sql.dll和main.exe

  1. 因为数据库在打开数据库的时候需要一个路径配置,这个配置在config.lib库里面
  2. main.exe初始化设置config.lib里面的数据
  3. main.exe调用sql.dll的函数,要求打开一个数据库
  4. sql.dll找config.lib获取一个路径,并打开一个路径

此时就会出错,因为我们在编译main.exe的时候把config.lib也链接进去了,所以在设置config的时候,main.exe会从自己的地址空间找到config.lib的数据段并设置,而sql.dll会从自己的数据段去获取数据,
所以会获取数据错误

posted @ 2016-11-05 20:24  linyilong  阅读(174)  评论(0编辑  收藏  举报