【发布时间】:2013-10-14 12:16:08
【问题描述】:
我想知道,调用代码是否可以放置在使用不同工具链构建的 .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,我仍然有它的源代码,因此我可以重新编译它.
那么,有可能让它工作吗?如果不是,您能否提供一个简短的解释,究竟是什么不允许这样做?
【问题讨论】:
-
一个大问题是您将获得不同的 CRT,这意味着您将获得不同的堆。这会导致释放问题。
标签: c++ visual-c++ dll static-libraries