在使用VS2012编译zlib库官方提供的案例程序 zpipe.c 中代码时报错:
信息如下:
错误 1 error C4996: 'setmode': The POSIX name for this item is
deprecated. Instead, use the ISO C++ conformant name:
_setmode. See online help for details.
解决方案:
將代码中的setmode函数用_setmode替换,fileno用_fileno替换。
即將下面代码
#if defined(MSDOS) || defined(OS2) || defined(WIN32) || defined(__CYGWIN__)
# include <fcntl.h>
# include <io.h>
# define SET_BINARY_MODE(file) setmode(_fileno(file), O_BINARY)
#else
# define SET_BINARY_MODE(file)
#endif
替换为:
#if defined(MSDOS) || defined(OS2) || defined(WIN32) || defined(__CYGWIN__)
# include <fcntl.h>
# include <io.h>
# define SET_BINARY_MODE(file) _setmode(_fileno(file), O_BINARY)
#else
# define SET_BINARY_MODE(file)
#endif
这样就可以编译通过了。