VS2013的库给VS2017用,兼容性问题
结论:
如果库里面用到C++标准库的东西,那么没法用;
如果没用到C++标准库的东西,那么:
- 动态库:库和可执行的CRT保持一致即可
- 静态库:库和可执行的CRT都用MT(d)
才可以保证能运行,而不是链接报错
update 2021-5-11 09:54:11
VS2013编的C库(静态库,MD, release模式),给VS2019用(MD,release模式),遇到报错:unresolved external symbol __imp___iob_func
解决办法:在 VS2019 的工程最开头部分,添加如下代码,然后重新编译即可:
#if defined(_MSC_VER) && (_MSC_VER >= 1900)
FILE _iob[] = { *stdin, *stdout, *stderr };
extern "C" FILE * __cdecl __iob_func(void)
{
return _iob;
}
#endif
Greatness is never a given, it must be earned.