C4996 'getcwd': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _getcwd. See online help for details.

错误原因

微软从2005开始不再支持POSIX命名的C语言函数

解决方案

方案一:将getcwd换成_getcwd[不建议]

将getcwd换成_getcwd

但是,_getcwd函数只能在vs上使用,其他平台无法使用,故修改之后的代码无法移植,不建议采取此方案

方案二:使用条件编译

#ifdef _POSIX_C_SOURCE
    getcwd(buff, iLen);
#else
    _getcwd(buff, iLen);
#endif

在支持POSIX的平台系统会采用getcwd,在不支持的POSIX的平台系统会采用_getcwd,可兼容其他平台

方案三:设置预处理器

右键  ->  属性  ->  配置属性  ->  C/C++  ->  预处理器  ->  预处理器定义  ->  输入_CRT_NONSTDC_NO_DEPRECATE

posted @ 2025-03-05 03:18  EricsT  阅读(278)  评论(0)    收藏  举报