静态库中的MFC依赖

时间:2015-08-28 23:29:25

标签: mfc linker

我为我支持的几个Windows名称空间扩展使用了一个名为EzNameSpaceExtension的框架。

该框架作为许多静态库提供,并且标头自动链接相应的库(发布/调试)(MBCS / Unicode)(Visual Studio的版本)。

我最近升级到Visual Studio 2015并且(因为他们的支持没有响应)编辑了标题以在VS2015版本中包含VS2013库。

这包括库,但现在链接正在尝试将mfc120.lib链接到构建(构建库中不再存在)。

假设我从未收到供应商支持人员的回复(我提出的最后一个问题花了6个月才得到答案),mfc120依赖是否可以用新的MFC库替换?如果是,我需要什么样的链接标志以及代码运行的可能性是多少?

2 个答案:

答案 0 :(得分:0)

您还必须重新编译库。静态库为运行时创建了自己的依赖项。如果您没有源代码,则会丢失。

问题还在于某些导出的链接器链接可能匹配,但结构的二进制布局可能已更改。

您拥有的库必须与编译器和调试/发布模式匹配,如果它们不仅由外部DLL的入口点定义。

答案 1 :(得分:0)

库是否部署为源?如果是这样 - 在VS2015上重新编译它。如果没有 - 您最好的选择是在VS2013上构建整个解决方案。假设您仍然安装了VS2013,您仍然可以从VS2015 IDE(项目属性/配置属性/通用/平台工具集 - > 2013)执行此操作。您可以将IDE升级的好处保持到2015年,但却失去了编译器升级的好处。

技术上可能对2013和2015版本的MFC(以及相应的CRT,可能还有OpenMP等)都有重复依赖,但我会反对它。