在使用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

这样就可以编译通过了。

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-09-24
  • 2021-08-15
  • 2021-09-13
  • 2021-06-09
  • 2021-07-25
  • 2022-12-23
猜你喜欢
  • 2022-01-17
  • 2021-03-31
  • 2022-12-23
  • 2022-12-23
  • 2021-07-01
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案