问题描述
我将在Visual Studio 2013或Visual Studio 2019中编译旧项目(Visual Studio 2012平台-v110xp)。
它正在使用boost
和Microsoft detour 3.0
库。
但是detour 3.0
已被意外删除。
现在我只能找到detour4.0
。
但是我收到这样的错误
如何获取detour 3.0
库?
解决方法
使用VS 2015,VS 2017或VS 2019构建的C ++静态库是“二进制兼容的”,但是Visual C ++的任何其他版本都不是。例如,当与VS 2013代码链接时,与VS 2012链接的静态库不一定有效。参见WithUserAssignedManagedServiceIdentity
。
我不知道确切涉及哪些工具集,但这可能是链接问题的原因。最主要的是确保所有静态库和主要可执行文件均由同一编译器版本构建。
请注意,DLL及其导出库通常仅使用“ C样式”绑定,因此它们可以与多代编译器二进制兼容。
VS 2019包含v141_xp
平台工具集(即,使用与Windows XP / Windows Server 2003兼容的Windows 7.1A SDK的VS 2017编译器)。