最近安装了VS2012,发现原来的stlsoft无法正常编译,下载了最新版本依然不行,根据编译时的错误提示做了些修改后正常使用,以下为修改内容.
stlsoft版本stlsoft-1.9.116
1.stlsoft.h
第0666行后增加
# elif (_MSC_VER == 1600)
# define STLSOFT_COMPILER_VERSION_STRING "Visual C++ 10.0"
# elif (_MSC_VER == 1700)
# define STLSOFT_COMPILER_VERSION_STRING "Visual C++ 11.0"
# else /* ? _MSC_VER */
# error Currently only versions 5.0, 6.0, 7.0, 7.1, 8.0, 9.0, 10.0 and 11.0 of the Visual C++ compiler are supported by the STLSoft libraries
# endif /* _MSC_VER */
2.iterator_helper.hpp
第0431行后增加
# elif defined(STLSOFT_CF_STD_LIBRARY_IS_DINKUMWARE_VC) && \
( \
STLSOFT_CF_STD_LIBRARY_DINKUMWARE_VC_VERSION == STLSOFT_CF_DINKUMWARE_VC_VERSION_7_0 || \
STLSOFT_CF_STD_LIBRARY_DINKUMWARE_VC_VERSION == STLSOFT_CF_DINKUMWARE_VC_VERSION_7_1 || \
STLSOFT_CF_STD_LIBRARY_DINKUMWARE_VC_VERSION == STLSOFT_CF_DINKUMWARE_VC_VERSION_8_0 || \
STLSOFT_CF_STD_LIBRARY_DINKUMWARE_VC_VERSION == STLSOFT_CF_DINKUMWARE_VC_VERSION_9_0 || \
STLSOFT_CF_STD_LIBRARY_DINKUMWARE_VC_VERSION == STLSOFT_CF_DINKUMWARE_VC_VERSION_10_0 || \
STLSOFT_CF_STD_LIBRARY_DINKUMWARE_VC_VERSION == STLSOFT_CF_DINKUMWARE_VC_VERSION_11_0 || \
0 \
)
3.library_discriminator.hpp
第291行增加
#define STLSOFT_CF_DINKUMWARE_VC_VERSION_10_0 (0x0a00)
#define STLSOFT_CF_DINKUMWARE_VC_VERSION_11_0 (0x0b00)
第341行增加
# elif _CPPLIB_VER <= 520
/* Version 10.0 */
# ifdef STLSOFT_COMPILE_VERBOSE
# pragma message(" Dinkumware version 10.0")
# endif /* STLSOFT_COMPILE_VERBOSE */
# define STLSOFT_CF_STD_LIBRARY_DINKUMWARE_VC_VERSION STLSOFT_CF_DINKUMWARE_VC_VERSION_10_0
# elif _CPPLIB_VER <= 540
/* Version 10.0 */
# ifdef STLSOFT_COMPILE_VERBOSE
# pragma message(" Dinkumware version 11.0")
# endif /* STLSOFT_COMPILE_VERBOSE */
# define STLSOFT_CF_STD_LIBRARY_DINKUMWARE_VC_VERSION STLSOFT_CF_DINKUMWARE_VC_VERSION_11_0
以上修改后vs2012可正常编译.