The project runs correctly under VC6.0, however, after I updated it under VS2012, the following link errors occur:
revel.lib(BaseEncoder.obj) : error LNK2019: unresolved external symbol
"__declspec(dllimport) private: void __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::_Eos(unsigned int)"
(__imp_?_Eos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEXI@Z) referenced in function
"protected: virtual void __thiscall Revel_BaseEncoder::Reset(void)" (?Reset@Revel_BaseEncoder@@MAEXXZ)
Can anyone help me with this problem? Thanks a lot!
Most likely it’s because you’re using a library built with dependencies for an older version of stl than what you currently have.
You can set the compiler to use the old toolchain from the project properties so you can still use VS 2012 and get it to compile provided that you still have the old visual studio installed.
EDIT:To change the platform toolset, go to Project Properties->General, there should be an option called Platform Toolset there with a dropdown that you can use to select the older version of the toolchain as per the online msdn documentation (link here)
I am unsure if VS 6.0 will appear in said dropdown, but if it doesn’t, you can find a method to change it yourself here