我想知道,调用代码是否可以放置在使用不同工具链构建的 .dll 中?并且是否使用带有较旧编译器的 .lib 文件构建来构建带有较新编译器的代码?
我知道,第二个是不可取的,但我想知道,这不可能。
正是我的情况是这样的:
我有a.exe
使用 VC7.1 构建的b.lib
文件,该文件也是用 VC7.1 构建的。a.exe
调用代码c.dll
也是使用b.dll
. 现在我想写一个新的c.dll
,但是用 VC9 编译它。(我想这样做,因为我需要一些不支持使用 VC7.1 构建它们的库。) - 我c.dll
也需要b.lib
,我仍然有它的源代码,因此我可以重新编译它。
那么,有没有可能让它发挥作用?如果没有,您能否提供一个简短的解释,究竟是什么不允许这样做?