如模块A是自己写的程序,模块B是第三方的Dll,而A和B均引用了第三方库模块C(另一个DLL),但版本不一样且无法兼容。此时将哪一个版本的模块C引入至运行路径,均会导致程序无法正常运行。
DLL地狱问题,C++ two libraries depend on same lib but different versions?
最简单的解决办法是让模块A和模块B均基于同一版本的模块C,但实践中有难度
一种可能的办法(未验证):设法延迟模块B的加载时机,在其加载前将模块A的运行路径从系统路径中剔除,并添加模块B的路径